sylius-acp — a feed that tells the truth per SKU.
The bundle serves Agentic Commerce Protocol discovery at /.well-known/acp.json and a product feed at SKU level. Prices sit in the smallest unit next to the currency. Checkout is not announced in the capabilities by default.
A product with three prices does not fit into one row.
A product with three sizes at three prices cannot be represented in a single row without lying about two of them. Feeds that aggregate at product level pick one price for it — the lowest, the most common, any of them — and an agent that decides on that basis recommends a variant to the customer at a price it does not have. That is why the row here is the SKU and not the product.
Prices sit in the smallest unit next to the currency, not as a decimal number. A decimal in JSON invites every reader to parse it into a float, and from that point on the result is a question of rounding. An integer smallest unit plus a currency code cannot be read any other way than it is meant.
Checkout is withheld by default. An agent that reads it in the capabilities will try to buy through the API — and with an age-restricted assortment the purchase has to happen where age can be verified. Announcing a capability the shop is not allowed to offer produces purchase attempts that are bound to fail.
Source code & documentation
Composer package
MIT · Sylius 2.0+ · PHP 8.2+
composer require koh/sylius-acp
Built, tested and published under MIT. Public distribution via Packagist is being prepared (coming soon).
Part of the family
MIT
This package belongs to koh/sylius-agent-ready — seventeen bundles that make a Sylius shop usable for AI agents. Each one can be deployed on its own.