AI Commerce Readiness

Shopware AI Agent Readiness Auditor: Catalog & Site Scoring

Shopware 6 plugin that audits a catalog against OpenAI's own product-feed validator and scans the storefront for AI-agent discovery signals. Async at scale, 21 tests.

Industry:
E-commerce / SaaS Tooling
Project Type:
Plugin Product
Duration:
Ongoing
Location:
Germany
Published:
AI agent readiness auditor case study cover
Outcome
5
Fields scored per product
21
Automated tests
2
CLI commands
0-100
Per-product score

The Challenge

AI shopping agents like ChatGPT now read a merchant's product feed directly and decide whether to trust it. Shopware's own export validator enforces a strict pass or fail on that feed, but never explains to a merchant which products would fail it or why.

Critical Pain Points

  • Merchants had no visibility into which products would pass or fail the agentic commerce feed validator until the feed itself rejected them
  • Product data problems, missing brand, thin descriptions, no image, stayed invisible until export time
  • Checking "AI readiness" meant guessing at half-documented requirements instead of the platform's own rules
  • Catalogs running into the hundreds of thousands of products made a manual audit impossible
  • Beyond the catalog, nobody was checking whether the storefront itself exposed what agentic crawlers look for: llms.txt, structured data, a discoverable API catalog

Fixing a catalog for AI-agent readiness meant fixing it blind, product by product, with no scorecard and no way to prioritize where the biggest gaps were.

The Solution

I built a plugin that runs Shopware's own feed-validator logic against every product before export, and scans the site for the signals AI agents actually check.

Validator-matched scoring

Score weights mirror Shopware's OpenAiProductExportValidator field-for-field: title, description, brand, image, price. A 100 means the product would pass the real validator, not an approximation of it.

Real indexed table, not a custom field

Scores live in a dedicated entity attached to the product, so gaps show up as a sortable admin column instead of a JSON blob nobody can query.

Site-wide signal scanner

A separate scan checks llms.txt, AGENTS.md, JSON-LD on product, FAQ, and breadcrumb pages, robots content-signal rules, and a discoverable well-known API catalog: everything outside the product feed that agentic crawlers look for.

Built to scale past the sync limit

Large catalogs batch through Symfony Messenger by product-id range, so a full re-audit after a bulk import runs as background jobs instead of one blocking command.

Results & Business Impact

A validator merchants can run before export, not after rejection

Every score traces back to the same rules Shopware's own validator enforces, so a 100 is a guarantee, not a guess.

Gaps sortable, not buried

The admin product list sorts by score directly, so the worst-scoring products surface first instead of getting found by accident.

Site-level blind spots caught too

llms.txt, AGENTS.md, and structured-data gaps get flagged the same way product gaps do, in one report.

21 tests, iterated against the platform's own source

Earlier scoring assumptions on GTIN, MPN, and description length got dropped after re-reading the validator source and confirming they weren't actually enforced.

Technologies Used

  • Shopware 6.7
  • PHP 8.2
  • Symfony Messenger
  • DAL
  • PHPUnit
  • CLI Commands

Selling through AI shopping agents?

If you don't know whether your catalog would pass an AI agent's feed validator, that's a gap worth closing before a customer's assistant finds it for you. Let's talk.

Book a consultation

Share this case study

Found this interesting? Share it with your network