Your product detail page is probably your most expensive asset. The review wall, the lifestyle photography, the A+ content, the comparison tables built out of metafields — years of work and a meaningful share of the budget.
On 29 October 2026 we pulled the complete search_catalog output schema from a live Shopify store's own UCP endpoint: 207KB of JSON. Then we counted. The product object an agent receives has 14 top-level fields, and the words rating, review, model_3d, video, safety and upid appear zero times.
Key takeaways
- A store's own UCP endpoint returns 14 top-level product fields. That is the whole surface.
rating0,review0,upid0,safety0,video0,model_3d0 across the full 207KB schema.list_priceappears 6 times — the Fall '26 compare-at price update landing in a real field.- Ratings, reviews, media-type filters and inferred attributes do exist, but only in the cross-store Global Catalog, not in your own endpoint.
- Three variant fields deserve monitoring as hard KPIs:
eligible.native_checkout,availability.running_low,seller.domain.

The 14 fields, in full
# | Field | What it carries |
|---|---|---|
1 |
| Product identifier |
2 |
| The single biggest recall lever |
3 |
| Raw material for inferred features |
4 |
| Slug |
5 |
| The link shown in the recommendation |
6 |
| Flag |
7 |
| Price shown with currency |
8 |
| Compare-at, i.e. markdown state |
9 |
| Option names shown verbatim |
10 |
| One image travels with the card |
11 |
| Standard taxonomy, decides candidate sets |
12 |
| Merchandising groups |
13 |
| Free-form tags |
14 |
| id, title, sku, price, |
Everything an agent says about your product on this path is generated from that list. Nothing else is reachable.

What this invalidates
Three common assumptions stop being true:
"Our review count is our moat." On your own endpoint, there is no review field for an agent to read. Social proof still works on a human who opens the URL; it carries no weight in the tool call that decided whether the URL was shown at all. In the Global Catalog there is a rating filter — and it works per variant, requiring at least one variant to meet the threshold, not a product-level average. Your hero variant's rating and review count need watching on their own.
"Our 3D viewer and video differentiate us." model_3d and video are absent from the storefront schema entirely. The Global Catalog has a media filter that accepts image, video, external_video and model_3d — so rich media is a filter that can get you into a result set, not a thing the agent describes.
"Our metafield spec table answers every question." Custom metafields are not in this object. The Global Catalog's attributes filter accepts exactly three names — Color, Size and Target gender — and the official documentation states that unsupported attribute names are ignored and reported back in messages. Dozens of carefully modelled custom attributes do nothing here.
What the Global Catalog adds — and the catch
The cross-store catalog is much richer, and one class of its fields behaves differently from everything you are used to. Shopify marks them Inferred and says plainly: "Treat them as discovery and merchandising signals, not as merchant-authored source text."
Inferred field | What it is | What it actually does |
|---|---|---|
| Generated or enhanced by Shopify | The platform may rewrite your description before handing it to an agent |
| Normalised for discovery | Your option names get standardised; sloppy naming gets mis-grouped |
| Material, style, occasion | Extracted from your copy |
| Technical specification | Substitutes for the spec table you never got into the catalog |
| Main feature points | Answers "what is good about it" |
| Differentiators | Answers "why pick this one" |
This is the only path from your copy to the agent's words, which changes what product copy is for. We wrote that up separately in writing product copy for extraction.
Three fields to put on a dashboard
eligible.native_checkout— whether the variant can be bought without leaving the conversation. It defaults tofalse. An agent has every reason to prefer products that close in-chat, for itself and for the buyer.availability.running_low— a scarcity signal the agent will relay to the buyer. It is inventory state doing marketing work.seller.domain/seller.id— merchant identity. In cross-store comparison this is where brand recognition lives, and it is the one place a strong brand gets a free advantage.
The practical reprioritisation
If you accept the field list, the work reorders itself:
- Standard product taxonomy on every core SKU — recall happens on broad category terms, so this decides whether you are in the candidate set.
- Color, Size and Target gender filled in correctly, because those are the only attribute filters that exist.
- Option names a human would recognise, since they are shown verbatim in the recommendation card.
- One main image that makes sense out of page context — it is shown next to a competitor's.
list_priceset deliberately, since markdown state is now a first-class field.- Out-of-stock cleanup — search returns only purchasable items, so unavailable equals non-existent.
Note what is not on that list: a bigger review wall, more lifestyle photography, a better 3D viewer. Those still earn their keep with human visitors. They are simply not what this path reads.
FAQ
Is this true for every Shopify store? It is what we measured on live stores on 29 October 2026, against protocol version 2026-08-25. Field lists move with protocol versions. Pull your own schema with a tools/list and a search_catalog call before planning around it — the commands are in our readiness audit.
Do reviews matter for AI visibility at all, then? Yes, in two other places: as a Global Catalog filter, and as third-party content models cite when forming an opinion of your brand. What they do not do is travel inside the storefront product object.
What about structured data on the page? Schema.org markup still matters for crawlers and for the citation layer. It is a different path from the tool call described here. Both run in parallel — see the three steps of visibility.