The Agent SKU: How to Structure Your Product Catalog So AI Agents Find, Compare, and Recommend It
The 12 product schema fields that decide whether your catalog is visible to ChatGPT, Claude, and Gemini in 2026. Audit checklist, common mistakes, and the fix for each field.
Open your product page in a browser. Right-click. View page source. Search for the string "application/ld+json".
If you find nothing, your store is invisible to ChatGPT, Claude, Gemini, and every other AI shopping agent in 2026. The agent does not look at your hero image. It does not parse your marketing copy. It does not click your "Add to Cart" button. It reads a structured JSON block at the bottom of your HTML and decides whether to show your product to the human who asked for one.
If you find a JSON-LD block, the next question is whether it carries the twelve fields the agent actually reads. Most do not. Mid-market DTC catalog audits suggest fewer than 18% of stores ship a complete Product schema (illustrative, since audit samples and definitions differ), and the missing fields are the ones that decide ranking.
This post is the field-by-field map. The 12-Field Agent SKU: what each field tells the agent, what most stores get wrong, the operator fix for each.
The AI agent does not browse your store. It reads twelve fields.
Why the 12 fields, not 12,000
Schema.org's Product type has dozens of optional properties. You do not need most of them. The 12-Field Agent SKU is the subset that the major agent crawlers (OAI-SearchBot for ChatGPT, ClaudeBot for Claude, Google-Extended for Gemini) actively read as of mid-2026 when they assemble, rank, and verify a product. Schema.org is the structured-data standard every one of these agents reads, and it has converged on a stable commerce core even as the broader vocabulary keeps growing. Optimizing the other properties is effort the agent does not reward.
The reason to do this work now rather than next year is volume. Adobe reported AI-driven traffic to U.S. retail sites grew 393% year over year in Q1 2026. That traffic arrives already filtered by the agent, which read these twelve fields before it ever surfaced you. The catalog work is upstream of every agent-originated sale, and it is the part of the agent purchase you fully control. We walked the downstream sequence in the frame-by-frame walkthrough of how an agent actually buys; this post is the catalog layer that feeds it.
The 12-Field Agent SKU
Five of twelve fields are where operators win. The agent treats missing fields as low confidence and routes around your catalog.
Product.name
Clean canonical title, not marketing copy.
Most stores: PresentProduct.gtin
UPC / EAN / ISBN, the universal identifier.
Most stores: MissingProduct.brand
A Brand entity with a name, not a string.
Most stores: PresentProduct.description
Factual first paragraph, not a story.
Most stores: Wrong formatProduct.image
Three or more structured images.
Most stores: PresentOffer.price
Explicit numeric price plus currency.
Most stores: PresentOffer.priceValidUntil
The date the price expires.
Most stores: MissingOffer.availability
InStock / OutOfStock / PreOrder enum.
Most stores: PresentOffer.shippingDetails
Cost, currency, delivery time, structured.
Most stores: Wrong formatOffer.hasMerchantReturnPolicy
Return window, cost, restocking entity.
Most stores: MissingAggregateRating
ratingValue plus reviewCount.
Most stores: MissingReview
Three to five recent reviews with author.
Most stores: MissingFields 1 to 4: identity and description
The first four fields answer the agent's opening question: what is this product, who makes it, in plain language. Product.name should be the clean canonical title. The single most common mistake is stuffing it with marketing copy ("Best 2026 Model, Now On Sale, Free Shipping"), which reads to the agent as a low-trust title and muddies the match against a buyer's query. Product.gtin (the UPC, EAN, or ISBN) is the universal identifier that lets the agent disambiguate your SKU from a near-identical competitor, and it is missing far more often than operators expect.
Product.brand should be a Brand entity with a Brand.name, not a bare string, because the agent uses the entity to connect your product to the reputation signals it has accumulated about the brand. Those reputation signals are exactly the ones catalogued in the 7 things that make AI agents recommend your brand. Product.description should lead with a factual first paragraph (materials, dimensions, use case), not a brand story, because the agent extracts facts from the opening lines to answer the buyer's constraints. The scale of the audience reading these fields is not small: ChatGPT alone reached 900 million weekly active users by February 2026, and every one of them who asks for a product triggers this identity read.
Fields 5 to 7: pricing and visual
Fields five through seven answer what it costs and what it looks like. Product.image should carry at least three structured images (front, detail, in-use) so the agent can present the product confidently. Offer.price must be an explicit numeric value with Offer.priceCurrency, not a price baked into display text the agent has to guess at. The field operators miss most is Offer.priceValidUntil, the date the price expires. Without it, the agent has no way to know your price is current, so it treats the price as potentially stale and demotes you against a competitor whose price it can trust.
This one field is the clearest example of how a single line of JSON-LD changes a ranking outcome. The payoff for getting the pricing and visual fields right shows up in conversion: Adobe found AI referrals converted 31% better than non-AI traffic during the 2025 holiday season, because a buyer arriving on an agent recommendation has already seen accurate price and imagery the agent trusted enough to surface.
Why priceValidUntil decides whether your price is shown
One line of JSON-LD. Two completely different ranking outcomes.
With priceValidUntil
"@type": "Offer", "price": "89.00", "priceCurrency": "USD", "priceValidUntil": "2026-12-31"
Agent surfaces the price in the recommendation and includes it in comparisons.
Without priceValidUntil
"@type": "Offer", "price": "89.00", "priceCurrency": "USD"
Agent flags the price as potentially stale and demotes you against competitors with fresh prices.
Fields 8 to 10: fulfillment and trust
Fields eight through ten answer whether the human can actually buy this and get it. Offer.availability must use the Schema.org enum (InStock, OutOfStock, PreOrder) rather than free text, because the agent reads the enum value directly and a stockout it cannot parse becomes a recommendation it will not make. Offer.shippingDetails should be a structured entity with cost, currency, and delivery time, not a free-text "ships in 3 to 5 days" string buried in the page. Offer.hasMerchantReturnPolicy should be a MerchantReturnPolicy entity with the window, the cost, and any restocking terms.
This is where out-of-the-box e-commerce platforms break hardest. Shopify and WooCommerce both ship Offer.availability cleanly, but both routinely leave shippingDetails and hasMerchantReturnPolicy missing or unstructured by default, so the gap is invisible to operators who assume the platform handles it. The authorization and payment hand-off that depends on these trust fields is mapped in the protocol map of how the payment hand-off works. The fulfillment fields are not a compliance checkbox; they decide whether the agent is confident enough to complete the purchase. The volume riding on that confidence is large and growing: Bain projects agentic AI will account for 25% of U.S. ecommerce sales by 2030.
Where Shopify, WooCommerce, and custom stores break
Out-of-the-box e-commerce platforms ship most of the 12-field surface. The remainder is the operator's work.
Fields 11 and 12: social proof
The last two fields answer whether other humans like this. AggregateRating carries the ratingValue and reviewCount; Review carries three to five recent Review entities with an author and a body the agent can summarize. These are the highest-weighted fields in the scoring stage, and they are the ones most stores have but never expose. The reviews exist. They are just trapped in a widget.
Most DTC stores run a review app (Yotpo, Stamped, or Okendo) that renders stars for human visitors but never emits Schema.org Review and AggregateRating markup the agent can read. The agent does not see the widget. It reads the markup, and if the markup is absent your hard-won reviews are invisible at exactly the stage where they would have won the recommendation. Check whether your review app's Schema.org output is switched on; many ship it as an off-by-default setting. The stakes are concrete: ChatGPT now drives 20% of Walmart's referral traffic, and agent-routed buyers arrive having already weighed the review signal you either exposed or hid.
The 30-minute audit
You can check all twelve fields on your top SKUs in about thirty minutes with two free tools: Google Rich Results Test and your browser's View Source. Run one check per field and note which come back missing or malformed. The point is not to fix everything today; it is to find out which of the twelve your catalog is currently failing, because the missing fields are silently costing you the recommendation. Start the audit now rather than later: traditional search volume is projected to fall 25% by 2026 as buyers move to agents, so the catalog that is unreadable today is unreadable to a fast-growing share of demand. The technical precondition to all of it (can the crawler reach you at all) is covered in the visibility audit most brands skip.
The 30-minute audit: 12 checks, one per field
Two free tools: Google Rich Results Test and View Source. Find the fields you are failing.
Product.name
Rich Results TestExpected: Product schema valid
Product.gtin
View sourceExpected: search "gtin13"
Product.brand
Rich Results TestExpected: Brand entity with name
Product.description
View sourceExpected: factual first paragraph
Product.image
Rich Results TestExpected: image count >= 3
Offer.price
View sourceExpected: numeric price + currency
Offer.priceValidUntil
View sourceExpected: priceValidUntil present
Offer.availability
View sourceExpected: schema.org/InStock enum
Offer.shippingDetails
Rich Results TestExpected: ShippingDetails entity
Offer.hasMerchantReturnPolicy
Rich Results TestExpected: MerchantReturnPolicy entity
AggregateRating
Rich Results TestExpected: ratingValue + reviewCount
Review
Rich Results TestExpected: >= 3 reviews w/ author + body
By 2028 the 12-Field Agent SKU is table stakes, not an advantage. Once every serious catalog ships all twelve, the brands that win the recommendation slot will be the ones competing on field twelve: review density and freshness, the signal that is hardest to fake and slowest to build. The catalog work is also the foundation for paid placement, which is why brands that get the twelve fields right are the same brands compounding on OpenAI Ads, where the structured feed feeds the auction. Cresva audits the 12-Field Agent SKU on your live store and returns the exact JSON-LD diff per product. Request early access.
Twelve fields decide whether your catalog gets recommended. Most stores ship five. Cresva audits the 12-Field Agent SKU on your live store and gives you the exact JSON-LD diff per product. Request early access.