The AI-Ready Product Catalog: The Foundation of Agentic Commerce (2026)
Quick summary: Adobe's July 2026 expanded cohort: 39% of U.S. retail homepages not machine-readable. Agentic commerce fails earlier — on missing attrs, duplicate GTINs, and stale stock. This is the catalog contract, not the PIM publish workflow.
Key Takeaways
- Adobe's July 2026 expanded cohort: 39% of U
- It is not the extract → validate → merchandiser-publish loop — that is AI product catalog management (series part 9)
- On June 17, 2026, AgentCore Harness reached general availability (What's New)
- AWS lifecycle notice (June 30, 2026) — Amazon Bedrock Agents Classic is in maintenance for new customers after July 30, 2026
- Catalog draft agents should use Bedrock AgentCore

Table of Contents
This post is that contract: what search, recommendations, GEO, and shopping agents are allowed to read. It is not the extract → validate → merchandiser-publish loop — that is AI product catalog management (series part 9). It is not an anonymized client engagement. We do not invent completeness or conversion KPIs.
On June 17, 2026, AgentCore Harness reached general availability (What’s New). Use Harness when you draft against a short tool list. The foundation of agentic commerce is still whether the published record is a contract.
AWS lifecycle notice (June 30, 2026) — Amazon Bedrock Agents Classic is in maintenance for new customers after July 30, 2026. Catalog draft agents should use Bedrock AgentCore. Full matrix: lifecycle roundup. The AI-ready catalog is a data product, not a Classic action group.
First-party signals we reuse (not eCommerce outcomes) — Gateway server-side tools cut median tool round-trip ~180 ms → ~95 ms on a B2B CRM assistant (12 tools, ~8k turns/day) — Gateway post. Platform TCO silhouette: support-style AgentCore at 50K sessions/mo ~$791/mo platform + model (decision guide). PIM and inventory p95 will dominate agent latency. Model remaining sessions on the AgentCore pricing calculator.
Reproduce this — Copy
ai-ready-catalog-contract.md. Map fields to your PIM. Count SKUs in one category that would fail the JSON. Production gates for drafting still live incatalog-validation-rules.md.
Adobe Analytics (July 2026, 1T+ visits): 39% of an expanded U.S. retail homepage cohort were not machine-readable; apparel 76% LLM visibility. That is page readability. Agentic commerce fails one layer down: SKU graph quality.
Baymard 70.22% average cart abandonment is still about confidence and totals. A catalog that cannot tell the truth about stock and price hands that problem to every agent that reads it.
Opinionated take: do not let search, recs, GEO, and agents each invent a product model. One contract, many consumers. Trade-off: merchandising cannot keep a “web-only” title that fights the spec. You stop recommending SKUs you cannot fulfill.
The pipeline (and where this post sits)
flowchart LR
raw[Raw]
clean[Clean]
norm[Normalize]
enrich[Enrich]
val[Validate]
struct[Structure]
ready[AI-ready catalog]
cons[Search / recs / agents / GEO]
raw --> clean --> norm --> enrich --> val --> struct --> ready --> cons| Stage | Job | Typical failure |
|---|---|---|
| Raw | Supplier PDFs, DAM, marketplace sheets | Three identifiers for one shoe |
| Clean | Deduplicate keys, strip junk | Near-duplicates left as live GTINs |
| Normalize | Units, color, size onto a taxonomy | “M” vs “Medium” vs “m ” |
| Enrich | Optional copy and attributes after the SKU can pass gates | Polishing fiction |
| Validate | Code, not the model judging itself | Post 9 |
| Structure | Parent/child, relationships, offer object | Variants as duplicate products |
| AI-ready | The record in the artifact JSON | HTML-only PDP |
| Consumers | Search, recs, your copilot, external agents, GEO packaging | Shadow catalogs |
FactualMinds catalog automation (part 9) is how large catalogs get through validate. This post assumes that loop exists or is being built. If it does not, do not skip to JSON-LD.
There is no native Shopify AgentCore connector. Shopify Admin GraphQL, Akeneo, Salsify, or a custom PIM sit behind your OpenAPI. AgentCore does not ship an AI-ready catalog app.
Defects that break agents (not just SEO)
| Defect | What happens | Why this matters |
|---|---|---|
| Missing attributes | The model matches adjectives in the title | Comparison and fit questions fail |
| Duplicates | Two live GTINs or merged colorways | Ads and inventory diverge |
| Bad categories | Retrieved for the wrong intent | Wasted click, angry shopper |
| Poor descriptions | Prose fights the spec | Assistants quote the prettier lie |
| Weak variant relationships | Parent compared as if it were a size | Returns |
| Inventory inaccuracy | Stale in_stock | Over-sell; Baymard-grade trust hit |
Current: on-site search and recs already punish these defects. Emerging: external shopping agents and AI search as a channel retrieve the same holes at larger blast radius. GEO (post 34) is packaging of this record — not a second product, and not a ranking guarantee.
Your copilot needs this contract on tools. External buyer agents need it on feeds/APIs/JSON-LD. Same fields.
Context: illustrative JSON — align names to your PIM:
{
"sku": "SHOE-TR-W-10",
"gtin": "00012345678912",
"parentId": "SHOE-TR",
"attributes": { "size": "10", "width": "wide", "waterproof": true },
"offer": {
"price": { "amount": 140.0, "currency": "USD", "taxIncluded": false },
"availability": { "status": "in_stock", "quantity": 22, "asOf": "2026-08-27T09:00:00Z" }
}
}If asOf is older than the SLA, consumers must see unknown, not in_stock.
What broke
What broke — Recs, on-site search, and a prototype shopping prompt each used a different export: recs on parent IDs, search on URL slugs, the agent on marketplace GTIN. A wide-size trail shoe was “in stock” on the parent and
0on the child. Detection: golden compare questions recommended a size the WMS could not pick. Fix: one contract object; all consumers readparentId+ child availability; recs cannot emit a parent as a buyable SKU. Lesson: AI-ready is a shared schema, not three CSVs.
A second failure: calling the catalog AI-ready because enrichment filled descriptions while care, GTIN, and variant links still failed post 9 gates.
Gateway ~95 ms is not your inventory service. Batch validation should not hold a chat session per SKU.
What to Do This Week
- Copy
ai-ready-catalog-contract.md. Map each field to PIM. - Pick one category. Count SKUs missing required attrs, parent IDs, GTIN uniqueness, or fresh
asOf. That count is yours. - List consumers (search, recs, copilot, feed, JSON-LD). If any uses a shadow export, that is the ticket.
- If the fail mix is extraction and publish, go to post 9 — do not re-implement extract here.
- Packaging only: GEO checklist. Copilot APIs: post 10.
- Draft agents: Harness (GA June 17, 2026),
createDraftonly. Not Classic after July 30, 2026. - Implementation help: contact us, Generative AI on AWS, retail / eCommerce.
What This Post Doesn’t Cover
- Extract / OCR / HITL publish — post 9
- GEO JSON-LD and FAQ packaging — post 34
- Recommendation ranking algorithms (related:
ai-product-recommendation-agent-ecommerce-2026when it ships) - Measured FactualMinds catalog-completeness or conversion lifts — we are not inventing them
- Marketplace-specific feed specs
- Auto-merge of near-duplicates
FAQ
When should you NOT call the catalog AI-ready?
Skip the label when completeness % is high but variants have no parent IDs, inventory is a different SKU than the storefront sells, enrichment ran before validation passed, or the only catalog is a rendered PDP. Pretty descriptions are not a contract. Search, recs, and agents will fill gaps with language.
What could go wrong if you feed agents a marketplace CSV and skip the contract?
Duplicate GTINs, orphaned colorways, prices that exclude the checkout fee, and six-hour in-stock flags get retrieved as facts. External agents and your copilot both fail closed or, worse, fail open. Baymard still measures 70.22% cart abandonment — stale offer facts amplify it. Publish a record with asOf, or return unknown. Baymard 70.22%.
How is this different from AI product catalog management (post 9)?
Post 9 is how you produce quality inside PIM: extract, deterministic validate, merchandiser publish. This post is the output contract search, recommendations, GEO, and shopping agents consume. Do not duplicate the extract/publish workflow here. If the contract fails, go back to post 9’s gates — do not prompt the storefront harder.
What could go wrong if recommendations use a different product graph than the agent?
The rec widget shows a parent; the agent compares a child; inventory sits on a third identifier. Shoppers get a size that is not in stock. One contract, many consumers. Recs must read the same parent/child and availability fields. Do not let merchandising maintain a shadow catalog for AI.
Does Adobe homepage visibility mean our catalog is AI-ready?
No. Adobe’s expanded July 2026 cohort found 39% of homepages not machine-readable; apparel 76% LLM visibility. Homepages are not SKU graphs. AI-ready means required attributes, unique GTINs, variant relationships, and checkout-true price/stock on the product record. GEO packaging comes after that contract. Adobe / Digital Commerce 360.
Should a catalog agent publish directly so the AI-ready feed stays fresh?
No. Freshness is a pipeline SLA, not an unbounded publish tool. Draft and validate in code; a merchandiser publishes. Harness (GA June 17, 2026) fits a short draft loop. Skip Agents Classic after July 30, 2026. Auto-publish is how wrong care instructions go live.
Need one product contract that search, recs, and agents can share? Contact FactualMinds or see Generative AI on AWS and retail / eCommerce.
AWS Cloud Architect & AI Expert
AWS-certified cloud architect and AI expert with deep expertise in cloud migrations, cost optimization, and generative AI on AWS.




