UCP Catalog
Let AI shopping agents find and read your catalog the way they expect to, so your products are on the table when an assistant shops for a customer. The extension answers the Universal Commerce Protocol (UCP) 2026-08-25 catalog binding from your own store: discovery, search, batch lookup and product detail, with the same guest prices and availability your storefront shows, and nothing else. Checkout stays yours.
Latest version: 1.0.0 — changelog

Who it's for
- Merchants onboarding AI shopping platforms that speak UCP protocol version
2026-08-25: the module negotiates exactly that version and refuses older profiles. - Stores selling in several markets: the catalog is switched on per store view, and every price is quoted in that store view's currency.
- Catalogs built on simple, virtual, downloadable and configurable products with Magento Inventory (MSI) stock, which is where availability comes from.
- Teams that need agent access to be read-only: the profile advertises catalog capabilities only, never carts, checkout, payments or orders.
Why it matters
- Agents discover your catalog at a standard address,
/.well-known/ucp, with no integration project on your side. - The price an agent quotes is the guest price on your product page, to the minor unit, so a customer who arrives from an assistant sees no surprise.
- Only platforms you have onboarded get data: an unknown agent profile is refused with HTTP 424, and the module never fetches a URL an agent supplies.
- Nothing to host or schedule: no cron job, no queue consumer, no sessions. The endpoints are stateless and answer from your existing store.
- Switch it off for one store view and that store view's discovery and catalog endpoints go offline at once, while the others keep serving.
See it in action
- You set a product's price to
12.34USD on a store view. You get an agent reading{"amount":1234,"currency":"USD"}for that product, the same figure the Luma product page shows. - You set Enable UCP Catalog to Yes on one store view and leave another
on No. You get
GET /.well-known/ucpanswering the business profile on the first, and HTTP 404 with{"code":"disabled"}on the second. - You get correlated batch answers: a lookup for
["ucp-qa-1","missing-sku"]returns the one real product with aninputsentry naming the identifier it matched, plus an info message codednot_foundfor the other.
A public demo store answers at https://m2-ucp-demo.qoliber.com/.well-known/ucp.
What you get
| Feature | Benefit |
|---|---|
| Enable catalog access for a store view | Open the catalog to agents market by market: switch one store view on, keep only the platforms you trust in its profile list, and close it again without touching the others |
| Verify discovery and agent access | See what an agent receives before a platform does: the business profile, a product's price in minor units, a batch lookup and a search page with its cursor |
Discovery at /.well-known/ucp | Agents find each store view's catalog endpoint and the protocol version without you publishing anything by hand |
Catalog search (ucp/catalog/search) | Agents search by name or SKU text, filter by category and price, and page through results with a cursor that never repeats a product |
Batch lookup (ucp/catalog/lookup) | Up to 50 SKUs or identifiers per call, deduplicated, each answer correlated to the identifier that matched |
Product detail (ucp/catalog/product) | Every option value of a configurable product with exists and available flags, and the variant a selection resolves to |
| Guest price parity | Tax display, catalog price rules, fixed product tax and currency follow the store view, so quotes match the storefront |
| Stateless endpoints | Agent traffic starts no PHP session and adds no session records |

Competing solutions
The right-hand column describes common practice on the Magento extension market, not any particular vendor.
| Qoliber | Typical marketplace extension | |
|---|---|---|
| GitLab access | Full access to the module's GitLab repository: source, history, issues and merge requests | Varies by vendor |
| Packagist installation | Installed and updated with Composer from our private Packagist (qoliber.repo.packagist.com) | Varies by vendor |
| Slack access to the development team | A shared Slack channel with the developers who build and maintain the module | Usually ticket-based |
| Unit tests | 49 PHPUnit unit tests (12 classes) in the repository | Not typically published |
| Integration tests | 53 Magento integration tests (9 classes), run before every release | Not typically published |
| E2E Playwright tests | 18 Playwright end-to-end tests (4 spec files) on Luma, run before every release | Not typically published |
| Documentation | Full docs portal: installation, configuration, usage, troubleshooting and a developer guide | Varies by vendor |
| PHP and Magento range | PHP 8.1 to 8.5 on Magento Open Source and Mage-OS 2.4 (magento/framework ^103.0) | Varies by vendor |
- No SaaS, no callbacks — the module answers from your Magento installation and never calls a third-party service; unknown agent profiles are refused without a remote fetch.
Good to know
- Catalog reads only. Carts, checkout, payments, identity linking and orders are not part of this extension, and the discovery profile does not advertise them.
- Grouped and bundle products are outside this release; simple, virtual, downloadable and configurable products are served.
- Discovery requires an HTTPS storefront URL, and availability requires
Magento Inventory (
Magento_InventorySalesstays enabled). - Text search matches product name and SKU with SQL
LIKE; there is no semantic search. Private catalogs and B2B permission extensions need a dedicated eligibility adapter before the catalog is opened to agents.
Supported on PHP 8.1–8.5 with Magento Open Source or Mage-OS on the 2.4 line
(magento/framework ^103.0). Adobe Commerce has not been separately qualified.
Ready to start? Install the extension, then configure it. For licensing and commercial questions, see partnership.