The AI Product Passport: What Information Does an AI Shopping Agent Need? (2026)
Quick summary: The shopping-agent information object — not the PIM catalog contract. Fragmented data produces poor recommendations. Reuse Gateway ~180 to 95 ms and ~$791/mo at 50K sessions, not a passport completeness KPI.
Key Takeaways
- Reuse Gateway ~180 to 95 ms and ~$791/mo at 50K sessions, not a passport completeness KPI
- 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
- On June 17, 2026, AgentCore Harness reached general availability (What's New)
- It is not the AI-ready catalog contract (post 35)

Table of Contents
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 passport is a data object, not a Classic action group.
On June 17, 2026, AgentCore Harness reached general availability (What’s New). Use it to draft against tools. Do not use it as the product system of record.
The AI product passport is the shopping-agent information object: what a comparison or recommendation turn is allowed to read about one sellable SKU. It is not the AI-ready catalog contract (post 35). That contract is the PIM output for all consumers. Fragmented product data produces poor AI recommendations.
This post is not an anonymized client engagement. We do not invent completeness % or recommendation CTR.
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). Passport reads are catalog/inventory p95, not Gateway canary. Model your copilot mix on the AgentCore pricing calculator.
Reproduce this — Copy
ai-product-passport-schema.md. Map groups to your PIM. Fail one category’s SKUs closed if identity orasOfis missing. Contract:ai-ready-catalog-contract.md. Series folder:ecommerce-ai-agents-series/.
Opinionated take: one passport object per sellable SKU, served from the same fields as checkout. Trade-off: merchandising cannot keep a chat-only title. You stop recommending fiction.
FactualMinds helps merchants make product information agent-readable — not a second catalog in a prompt.
The object (what the agent is allowed to read)
flowchart TB
product[Product]
product --> attrs[Attributes]
product --> variants[Variants]
product --> price[Price]
product --> inv[Inventory]
product --> compat[Compatibility]
product --> reviews[Reviews]
product --> ship[Shipping]
product --> pol[Policies]Product
├── Attributes
├── Variants
├── Price
├── Inventory
├── Compatibility
├── Reviews (aggregated, policy-safe)
├── Shipping
└── Policies (return, warranty) by reference| Group | Fields | If missing |
|---|---|---|
| Identity | sku, parent_id, gtin | Fail closed |
| Attributes | Required per category | No honest comparison |
| Variants | Size/color graph | Wrong size sold |
| Price | Amount, currency, asOf, fees known | Hallucinated total |
| Inventory | ATP, asOf | Oversell |
| Compatibility | Named relations | Bad attach / wrong fit |
| Reviews | Count + themes from your pipeline | Invented quotes |
| Shipping | Method ids, not prose | Wrong ETA |
| Policies | Policy document version | Drift from legal copy |
Do not auto-publish passport fields. Draft in PIM; deterministic validate; merchandiser publishes.
Baymard 70.22% still describes checkout confidence. A passport that lies about stock or fees hands that problem to every agent that reads it.
Identity group, worksheet. sku is the sellable unit the cart uses. parent_id ties colorways. gtin is unique among live SKUs — duplicates fail the catalog contract. If marketplace sellers share a GTIN you do not own, do not pretend uniqueness; fail closed or qualify the merchant.
Attributes group. Required keys are per category, not a global kitchen sink. Apparel: size, width, material, care. Hardware: voltage, compatibility SKU list. Empty required keys → no comparison, not “the model will infer from the hero image.”
Variants. A parent without children is not a size selector. A child without a parent is how agents sell the wrong URL. The graph must match what checkout sells.
Price and inventory. Two clocks. If price asOf is newer than ATP asOf, say so in the object — do not silently mix. Fees the shopper will see at checkout belong on the passport or the agent must return unknown for total, not a made-up landed cost.
Compatibility. Named relations (fits_sku, requires_sku), not “works great with our ecosystem” in the description. Bad attach is a returns generator.
Reviews. Count + theme tags from your pipeline. Star average without a count is weak evidence. Quotes, if any, are opted-in and stripped of PII. The model does not write testimonials into the passport.
Shipping and policies. Method ids and policy version pointers. “Free shipping on orders over $50” as prose will drift from the OMS rule. Point at the rule.
The passport is a view of the contract, not a CMS. If search, recs, GEO, and the agent each get a different JSON, you have four products. One contract, many consumers — post 35. This object is the shopping-agent slice.
How this differs from adjacent posts
| Post | Job |
|---|---|
| 9 — catalog management | Extract, validate, merchandiser publish inside PIM |
| 10 — shopping readiness | 13-check score before inviting your copilot |
| 34 — GEO | Packaging for generative engines — not a rank guarantee |
| 35 — catalog contract | One output contract for search, recs, GEO, and agents |
| 36 — agent choice | Strategic decision layer (what intermediaries weigh) |
| 61 — agent-ready storefront | APIs, identity, shipping/policy as storefront prep |
| 62 — this passport | The read object for a shopping-agent turn |
| 64 — comparison audit | Merchant audit of whether that object survives a bake-off |
SEO is not obsolete. The passport does not replace Shopping feeds. It is what an agent uses in addition when it compares.
Minimum viable vs “complete dossier”
Minimum (fail closed without): identity, required attrs, sellable variant graph, price+asOf, ATP+asOf.
Then: compatibility relations, shipping method ids, policy version pointers, aggregated reviews.
Never: PAN, shopper PII, unpublished discounts, invented certifications, raw review PII, Browser-scraped HTML as ATP.
A JSON sketch (not a client schema — map to your PIM). Context: illustrative object only; serve it from APIs with asOf, not from HTML.
{
"sku": "SKU-TEE-BLU-M",
"parent_id": "SKU-TEE-BLU",
"gtin": "0000000000000",
"attributes": { "size": "M", "color": "blue", "material": "cotton" },
"price": { "amount": "24.00", "currency": "USD", "asOf": "2026-08-27T12:00:00Z" },
"inventory": { "atp": 12, "asOf": "2026-08-27T12:00:00Z" },
"shippingMethodIds": ["std", "exp"],
"policyVersion": "returns-v3",
"reviews": { "count": 40, "themes": ["fit", "color"] }
}Replace the GTIN, amounts, and counts with your records. Do not submit this fixture as completeness. reviews.count here is a placeholder, not a FactualMinds measurement. Empty gtin or missing asOf should fail closed in code, not in the model.
Adobe July 2026 AI-referral figures (Digital Commerce 360: +62% YoY, 60% higher conversion vs non-AI) are channel mix, not proof that passports already convert unattended. Do not copy those lifts as a FactualMinds KPI.
How this sits on AWS
getProduct / getPassport via Gateway. No native Shopify connector. Harness for a draft loop if tools are short. Publish stays human. Multi-agent is not required to serve a JSON object. Skip Agents Classic after 30 July 2026.
Strands after export does not become the PIM. Memory must not store live price/ATP — memory policy.
Gateway ~180 → ~95 ms is the CRM canary. Catalog p95 dominates. ~$791/mo at 50K sessions sizes a support-shaped host, not passport generation savings.
Context: Python 3.12+, boto3 ≥ 1.38.0, supported region. Sketch — pin the model your account allows.
# Sketch — InvokeHarness for a draft/enrich turn. Publish is not a tool.
# runtimeSessionId ≥ 33 characters. getProduct must return passport fields + asOf.
import boto3
import uuid
client = boto3.client("bedrock-agentcore", region_name="us-west-2")
response = client.invoke_harness(
harnessArn="arn:aws:bedrock-agentcore:us-west-2:123456789012:harness/catalog-draft",
runtimeSessionId=str(uuid.uuid4()),
messages=[{"role": "user", "content": [{"text": "Draft missing attrs for SKU-TEE-BLU-M"}]}],
)If publishProduct is attached, you are past Draft. Strip it.
What broke
What broke — A merchandising team built a “chat catalog” JSON in a CMS so agents would “have everything,” separate from PIM. Titles were punchier; GTINs duplicated; ATP was copied nightly. Detection: comparison goldens picked SKU-TEE-BLU-M as in-stock; checkout said 0; GTIN clash with a colorway. Fix: delete the shadow JSON; passport views the contract fields; fail closed on identity/
asOf; merchandiser publish only. Lesson: fragmented product data produces poor recommendations. A second dossier is fragmentation with better typography.
Invented review quotes in the passport is the same class of failure with a legal twist.
What to Do This Week
- Copy
ai-product-passport-schema.md. - Map each group to PIM fields. Empty groups are honest; invented groups are not.
- Fail closed on missing
sku/parent_id/gtin/ priceasOf/ ATPasOffor one category. - Confirm search, recs, and the passport share post 35 — no shadow graph.
- Ban auto-publish. Draft tools only if validation is code.
- Browser off. Model any draft harness on the AgentCore pricing calculator.
- Run
monday-checklist.md. Then audit comparison survival — post 64.
What This Post Doesn’t Cover
- Catalog contract for all consumers — post 35
- PIM extract/validate/publish loop — post 9
- Storefront APIs and identity — post 61
- Merchant comparison audit — post 64
- A measured recommendation-quality KPI from a named passport rollout — we are not inventing it
FAQ
When should you NOT publish an AI product passport field?
Do not auto-publish. Uncertified claims and missing asOf fail closed. Merchandiser publishes.
How is the passport different from the AI-ready catalog contract?
Post 35 is the shared output contract. This is the shopping-agent read object. One graph.
What could go wrong if the passport is assembled from PDP HTML at request time?
Prose specs, stale badges, parent/child confusion. Serve checkout fields.
When should you NOT include review quotes in the passport?
No invented quotes, no raw PII. Aggregated count and themes from your pipeline.
What could go wrong if variants are missing from the passport?
Wrong size sold, oversell on the parent. Identity plus variant graph are required.
Does AgentCore generate the passport?
It may draft. It must not publish. No native Shopify connector. Skip Classic after 30 July 2026.
Need a shopping-agent object that is not a second PIM? Contact FactualMinds or see Amazon Bedrock.
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.




