{"id":362417,"date":"2026-09-18T02:33:49","date_gmt":"2026-09-18T02:33:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ucpacp-agent-for-woocommerce\/"},"modified":"2026-09-18T02:33:28","modified_gmt":"2026-09-18T02:33:28","slug":"ucp-acp-agent-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/ucp-acp-agent-for-woocommerce\/","author":23558535,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.1.2","requires":"6.5","requires_php":"8.1","requires_plugins":null,"header_name":"UCP\/ACP Agent for WooCommerce","header_author":"sunh11373","header_description":"Universal Commerce Protocol (UCP) merchant implementation for WooCommerce \u2014 discovery, signed checkout sessions, orders, webhooks.","assets_banners_color":"0f1524","last_updated":"2026-09-18 02:33:28","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/ucp-acp-agent-for-woocommerce\/","header_author_uri":"https:\/\/profiles.wordpress.org\/sunh11373\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":76,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"sunh11373","date":"2026-09-18 02:33:28","revision":3701223}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3701223,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3701223,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3701223,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3701223,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3701223,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3701223,"resolution":"2","location":"assets","locale":"","width":1280,"height":800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3701223,"resolution":"3","location":"assets","locale":"","width":1280,"height":800},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3701223,"resolution":"4","location":"assets","locale":"","width":1280,"height":860}},"screenshots":{"1":"Settings screen (WooCommerce \u2192 UCP): discovery status, signing-key rotation, ACP provisioning, Stripe payments, product feeds.","2":"Agent-placed purchases arrive as normal WooCommerce orders.","3":"Order detail with the Stripe PaymentIntent recorded as the transaction ID.","4":"An AI shopping agent buying from the store over UCP: discovery, checkout, payment, signed webhooks."}},"plugin_section":[],"plugin_tags":[267600,250436,246305,3148,254710],"plugin_category":[45],"plugin_contributors":[281382],"plugin_business_model":[],"class_list":["post-362417","plugin","type-plugin","status-publish","hentry","plugin_tags-acp","plugin_tags-agentic-commerce","plugin_tags-ai-agents","plugin_tags-checkout","plugin_tags-ucp","plugin_category-ecommerce","plugin_contributors-sunh11373","plugin_committers-sunh11373"],"banners":{"banner":"https:\/\/ps.w.org\/ucp-acp-agent-for-woocommerce\/assets\/banner-772x250.png?rev=3701223","banner_2x":"https:\/\/ps.w.org\/ucp-acp-agent-for-woocommerce\/assets\/banner-1544x500.png?rev=3701223","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ucp-acp-agent-for-woocommerce\/assets\/icon-128x128.png?rev=3701223","icon_2x":"https:\/\/ps.w.org\/ucp-acp-agent-for-woocommerce\/assets\/icon-256x256.png?rev=3701223","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ucp-acp-agent-for-woocommerce\/assets\/screenshot-1.png?rev=3701223","caption":"Settings screen (WooCommerce \u2192 UCP): discovery status, signing-key rotation, ACP provisioning, Stripe payments, product feeds."},{"src":"https:\/\/ps.w.org\/ucp-acp-agent-for-woocommerce\/assets\/screenshot-2.png?rev=3701223","caption":"Agent-placed purchases arrive as normal WooCommerce orders."},{"src":"https:\/\/ps.w.org\/ucp-acp-agent-for-woocommerce\/assets\/screenshot-3.png?rev=3701223","caption":"Order detail with the Stripe PaymentIntent recorded as the transaction ID."},{"src":"https:\/\/ps.w.org\/ucp-acp-agent-for-woocommerce\/assets\/screenshot-4.png?rev=3701223","caption":"An AI shopping agent buying from the store over UCP: discovery, checkout, payment, signed webhooks."}],"raw_content":"<!--section=description-->\n<p>UCP\/ACP Agent for WooCommerce turns your store into a spec-compliant merchant for the two agentic-commerce standards:<\/p>\n\n<ul>\n<li><strong>UCP (Universal Commerce Protocol)<\/strong> \u2014 the open standard by Google and Shopify used by Gemini and Google AI Mode. This plugin passes the official UCP conformance suite (75\/75 tests, protocol version 2026-04-08).<\/li>\n<li><strong>ACP (Agentic Commerce Protocol)<\/strong> \u2014 the OpenAI\/Stripe standard used by ChatGPT (checkout currently limited to OpenAI-approved merchants; protocol version 2026-04-17).<\/li>\n<\/ul>\n\n<p>What it implements:<\/p>\n\n<ul>\n<li>Discovery profiles at <code>\/.well-known\/ucp<\/code> and <code>\/.well-known\/acp.json<\/code> with published ES256 signing keys (JWK)<\/li>\n<li>Full checkout-session lifecycle mapped onto your real WooCommerce products, stock, coupons, and shipping zones \u2014 completed agent checkouts become normal WooCommerce orders<\/li>\n<li>RFC 9421 HTTP Message Signatures: signed webhooks, optional strict verification of inbound requests, key rotation with a grace period<\/li>\n<li>Idempotency, capability\/version negotiation, and structured protocol errors on both rails<\/li>\n<li>Payments: Google Pay via Stripe (UCP) and Stripe Shared Payment Token (ACP), with declines surfaced to the agent; plus a mock handler for testing<\/li>\n<li>Signed order webhooks (RFC 9421 for UCP platforms, HMAC-SHA256 for ACP)<\/li>\n<li>Admin screen under WooCommerce \u2192 UCP: keys, rotation, strict mode, ACP provisioning, Stripe configuration<\/li>\n<\/ul>\n\n<p><strong>Security model:<\/strong> agent-facing checkout endpoints are public by design \u2014 that is how the UCP open standard works (any agent may discover and transact; authenticity is provided by HTTP Message Signatures, which you can enforce with strict mode). Orders are only created after payment succeeds, prices and stock are always server-authoritative, the ACP API requires a Bearer key, payment credentials are never stored or echoed, and the shipping-simulation test endpoint is disabled unless you configure a secret.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin communicates with external services only in the following cases:<\/p>\n\n<ol>\n<li><strong>Stripe (api.stripe.com)<\/strong> \u2014 only when you configure a Stripe key (directly or via the WooCommerce Stripe gateway). When an AI agent completes a checkout with a Google Pay or Shared Payment Token instrument, the plugin sends the payment token, amount, and currency to Stripe to process the charge, and fetches your Stripe account id once for handler configuration. Subject to the <a href=\"https:\/\/stripe.com\/legal\/ssa\">Stripe Services Agreement<\/a> and <a href=\"https:\/\/stripe.com\/privacy\">Privacy Policy<\/a>.<\/li>\n<li><strong>Google Pay<\/strong> \u2014 only when Stripe is configured. The plugin publishes your Google Pay merchant configuration (store name, site host, Stripe merchant id, accepted card networks) in the UCP discovery document and checkout responses so that AI agents can obtain a Google Pay card token for the shopper. The plugin itself never contacts Google; the resulting token is charged through Stripe as described above. Subject to the <a href=\"https:\/\/payments.developers.google.com\/terms\/sellertos\">Google Pay API Terms of Service<\/a> and <a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a>.<\/li>\n<li><strong>The AI platform contacting your store<\/strong> \u2014 when an agent request carries a <code>UCP-Agent<\/code> header, the plugin fetches that platform's public profile URL to discover its webhook endpoint and signature keys, and sends order status webhooks (order contents, totals, shipping address) to the webhook URL the platform published or that you configured for ACP. This only happens for platforms that initiate contact with your store or that you configure explicitly. Terms and privacy policy are those of the platform in question.<\/li>\n<li><strong>ACP Feed API push<\/strong> \u2014 only when you enter a Feed API base URL, feed id, and API token on the settings screen. The plugin then sends your published product catalog (product id or SKU, title, description, URL, image URL, price, availability, GTIN, variant options, categories, and store name) to that URL, once when you click \"Push now\" and thereafter once a day via WP-Cron. No customer data is included. Terms and privacy policy are those of the platform whose Feed API you configure.<\/li>\n<\/ol>\n\n<p>URLs under ucp.dev, acp.dev, pay.google.com, and developers.google.com appear in the plugin's discovery documents and payment handler declarations as protocol version identifiers, specification links, and JSON Schema references. They are never requested by the plugin.<\/p>\n\n<p>No data is sent to the plugin author. No analytics or tracking of any kind.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20make%20my%20products%20appear%20in%20gemini%20or%20chatgpt%3F\"><h3>Does this make my products appear in Gemini or ChatGPT?<\/h3><\/dt>\n<dd><p>It makes your store protocol-ready. Receiving Google surface traffic additionally requires a Google Merchant Center account; ChatGPT checkout additionally requires OpenAI merchant approval. Any UCP-speaking agent can transact with your store immediately.<\/p><\/dd>\n<dt id=\"do%20agents%20pay%20real%20money%3F\"><h3>Do agents pay real money?<\/h3><\/dt>\n<dd><p>Yes, when Stripe is configured: tokens supplied by the platform are charged through your Stripe account. Without Stripe, only the mock test handler is available, and only while a simulation secret is set.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20hpos%20%28high-performance%20order%20storage%29%3F\"><h3>Does it work with HPOS (High-Performance Order Storage)?<\/h3><\/dt>\n<dd><p>Yes, compatibility is declared and order access uses HPOS-safe APIs.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: UCP 2026-04-08 (official conformance suite: 75 passed), ACP 2026-04-17, RFC 9421 signatures, Stripe payment handlers, admin screen.<\/li>\n<\/ul>","raw_excerpt":"Make your store buyable by AI agents: Universal Commerce Protocol (UCP) and OpenAI&#039;s Agentic Commerce Protocol (ACP) in one plugin.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/362417","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=362417"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sunh11373"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=362417"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=362417"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=362417"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=362417"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=362417"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=362417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}