by shopware AG
Agentic Commerce helps prepare your Shopware 6 store for AI-powered product discovery and agent-driven shopping experiences. The extension provides a dedicated Agentic Commerce sales channel configuration that lets merchants expose product data in a controlled way to external AI platforms, catalog consumers, and compatible shopping agents.
For product distribution, the plugin supports OpenAI product feeds in JSONL format as well as Google Shopping feeds in XML format. Feed settings can be managed per sales channel, allowing merchants to determine precisely which products are made available for each Agentic Commerce integration.
The extension also supports the Universal Commerce Protocol (UCP). Depending on the Shopware version and selected configuration, agents can access capabilities for catalog browsing, carts, discounts, checkout, and orders. Multiple transport options are available, including REST, A2A, Embedded, and MCP.
Merchant control remains central to the integration: available agent capabilities and transports can be configured individually for each sales channel. The extension also includes functionality for monitoring traffic and purchases generated through Agentic Commerce sales channels.
Please note that this extension is currently in beta. Availability of individual Agentic Commerce features may depend on external AI platforms and their regional availability requirements.
Key Features at a Glance
Open Source and License Notice
This plugin is based on the open-source project Agentic Commerce by Shopware and is distributed through our platform. Unless stated otherwise, this plugin is provided under the terms of the MIT License. The original copyright notice and the full license text are included in the plugin package.
Copyright (c) 2026 Shopware
The software is provided “as is”, without warranty of any kind, to the extent permitted by applicable law. The terms of the MIT License shall prevail. You can find the full license text in the plugin package and at: https://github.com/shopware/agentic-commerce/blob/main/LICENSE.
/ucp/mcp, instead of to every client of Shopware's own MCP server at /store-api/_mcp. 1.3.0 put them into the group Shopware reserves for its own discovery tools, so every client connecting to /store-api/_mcp saw the thirteen UCP tools next to Shopware's instruction that no tools are listed until a toolset is enabled -- and models followed that instruction, enabling toolsets for tools they already had. The tools now form their own ucp toolset, and /ucp/mcp selects it at connect time, so a UCP agent still finds them on its first tool listing while a plain /store-api/_mcp connection lists only Shopware's discovery tools. On Shopware versions before 6.7.15.0, which cannot select a toolset at connect time, the tools stay listed on every connection as before.Unsupported OAuth scope, and a consent flow that swallowed the error had already used up its one-time link and told the buyer the link had expired. Tag a scope provider with swag_agentic_commerce.ucp.oauth_scope_provider and its scope is advertised in scopes_supported on /.well-known/oauth-authorization-server and accepted in an authorization request. A request that omits the scope still gets only the three built-in ones; an extension scope has to be asked for by name. An unregistered scope is still rejected -- now with the supported set named in the message, which is what made this hard to diagnose.6.5.8 or newer. 6.5.0.0 through 6.5.7.4 were listed as compatible but could never install: those versions ship Symfony 6.3, while both the extension's own routes and the UCP SDK need Symfony 6.4. Installation therefore ended in a Composer error about symfony/config that a merchant cannot act on. Such a shop now sees the extension as incompatible; updating to 6.5.8.x fixes that and stays inside the same minor.vendor/ and loaded the autoloader Composer had generated for it, because Shopware does not load a plugin's vendor/autoload.php by itself. Every shop that installed it then carried two separate package registries: FroshTools reported 2 autoloaders registered, and a question as ordinary as which version of a package is installed could be answered from the plugin's copy instead of the shop's. The extension now carries no dependencies at all. It has Shopware run composer require on install and update instead, which is what that mechanism is there for on a zip-installed extension: the extension itself resolves from the custom/plugins/* path repository every Shopware project declares, and the SDK version it names comes from Packagist into the shop's own vendor/. Nothing changes for a shop that installs through Composer. What is new is that the shop needs to reach Packagist (packagist.org) while installing or updating the extension -- without it the install stops with a Composer error, rather than leaving an extension that cannot run.500 from that moment on, the storefront included, until someone installed the SDK by hand. The extension now registers no services, routes or feeds in that state, and writes to var/log/swag-agentic-commerce.log what is missing and the command that fixes it. Once the SDK is there it picks up again on its own. The check asks not only whether an SDK is present but whether it is the version this release names, so a shop still holding the previous one waits instead of running new code against an old SDK. The README has a Troubleshooting section covering what that state looks like, how to leave it, and what to expect when updating from 1.3.0 or older. A cluster setup is the exception: Shopware never runs Composer for a plugin there, so nothing would ever install the requirements, and the extension refuses the install rather than reporting success and then doing nothing.Checkout, cart and order completion
payment.instruments[].billing_address and shipping from the fulfillment destination, each falling back to the other, and a shipping address reaches Shopware only when it differs from billing.201 Created, status: success, no messages and an empty cart. The request is now answered with 422 and a recoverable error naming the id, and for the parent of a variant product it lists the variant ids to buy instead.not_found instead of handing out a fresh empty cart under the guessed id. Cart ids handed out by cart.create are remembered in the same context store the checkout session already uses.Acoustic Guitar (Color: Yellow, Material: Spruce Top)), and catalog.lookup and catalog.product answer a parent id with a purchasable variant chosen the same way every time. catalog.product previously picked a different variant on every call.query is optional free text in the specification, and an agent opening with a blank search was being told the shop had nothing to sell.info record per request on the new ucp_negotiation log channel with the agent's declared version, the served version, the outcome and the agent profile host, nothing else. This is the measurement the single-version policy is revisited on, and SDK 0.0.7 reports it.ucp:setup, which configures a sales channel for UCP in one step: exposure, security defaults, a signing key when the channel has none, the readiness checks and the first request to run. --dev picks local defaults so the shop can act as its own agent; without it the defaults are production ones. The README now walks through the whole setup in four steps.0.0.7) and stop configuring ucp_sdk.version. The SDK serves one UCP version per release and defaults to it, so an SDK release now arrives together with a plugin release instead of reaching shops on its own, and the plugin can no longer name a version its linked SDK does not serve. Version 1.2.x combined a pinned 2026-04-08 with a >=0.0.5 <0.1.0 window: composer update resolved SDK 0.0.6, which no longer served that version, and the container build failed inside assets:install part-way through a Shopware core upgrade. docs/ucp-version-support.md explains what the plugin serves and what a spec bump means for a shop.2026-08-25 through SDK 0.0.7, including version-aware capability negotiation, the standard catalog capability IDs and updated consent, fulfillment and payment shapes.search_catalog, create_cart, create_checkout, complete_checkout, get_order and so on) and advertise them on a fresh MCP session. They were named shopware-ucp-* and hidden behind a toolset an agent had to enable first, so a spec-following agent listing tools on /ucp/mcp saw only the toolset meta-tools. An MCP client that called the old names has to switch; the arguments are unchanged./.well-known/api-catalog (RFC 9727 linkset) on exposed sales channels, so an agent can discover the shop's UCP profile and Store API entry point from one standardised location; unexposed channels return 404.de.json, en.json) following the current Shopware core convention; a compatibility loader keeps them working on Shopware versions before 6.7.3.Discover our most popular extensions, trusted by Shopware stores worldwide to improve functionality, performance, and growth.