Promptwatch Logo

How to Optimize Product Listings and Feeds for AI Shopping Agents

AI shopping agents decide from structured fields. Promptwatch lists the schema each listing needs, whether ChatGPT, Gemini and Perplexity need separate feeds, and how to test agent-readability.

TL;DR

  • To optimize product listings for AI shopping agents, give every product complete structured data (price, availability, identifiers, shipping and return policy) that matches across your feed, product page and marketplace listings.
  • One master feed can serve ChatGPT, Google AI Mode and Gemini, and Perplexity, as long as each export is checked against that surface's own spec.
  • Stale price or stock data fails the same way as missing data, so sync your feed from the system that runs checkout.
  • Promptwatch's AI crawler logs show whether shopping bots reach your product pages, and its ChatGPT Shopping tracking shows which of your products appear in shopping answers, so you can confirm a data fix reached the agents.

Why AI shopping agents decide on data accuracy

A search ranking algorithm rewards relevance signals that build up over time: backlinks, dwell time, topical authority and well-optimized copy. In agentic commerce, an AI shopping agent answers one bounded question instead: does this product match what the user asked for, and is the data reliable enough to recommend or buy it? It answers by reading structured fields. A listing with a missing availability field gives the agent nothing to act on, however persuasive its description. A listing with three plain sentences and complete Offer markup passes. For the full readiness picture beyond product data (protocols, liability policy and measurement), see how to prepare for agentic commerce.

What agents check before recommending a product

Before an agent surfaces or buys a product, it runs a checklist against structured fields:

  • Does the product match the category and attributes the shopper asked for?
  • Is it in stock right now?
  • What does it cost after any modifiers?
  • How fast does it ship, and at what cost?
  • What happens if the shopper wants to return it?

Each question maps to a schema.org property: availability, price, shippingDetails and hasMerchantReturnPolicy. An agent has no fallback when a field is missing. A person might read a shipping FAQ to work out the return policy, while an agent moves on to a listing that states it.

Why stale pricing and inventory data disqualifies you without a warning

The failure that catches otherwise well-structured catalogs is data that used to be right. A price that didn't sync after a promotion ended last week, or an availability value still set to in_stock on a product that sold out yesterday, looks correct to an agent. There's no error, no broken markup and nothing a validator would flag. The agent acts on what's there, and the result is a bad recommendation or a failed transaction. Both count against your product.

The structured data your product pages need

Schema.org's Product and Offer types are the shared vocabulary behind nearly every agent shopping surface, and the requirements are more specific than “add Product schema.” OpenAI's product feed specification is the most concrete public field list for an agent-facing feed, and it maps onto schema.org properties most teams already use.

Minimum viable schema for agent readability

OpenAI's spec requires nine fields. Everything else it accepts is optional.

Required fields

Schema.org propertyACP feed field
identifier (feed-level ID)item_id
nametitle
descriptiondescription
urlurl
brandbrand
seller (organization name)seller_name
imageimage_url
offers.availabilityavailability
offers.priceprice

In OpenAI's own format, availability accepts five values: in_stock, out_of_stock, pre_order, backorder and unknown. A value outside that list fails to parse.

Optional fields worth including anyway

Schema.org propertyACP feed field
gtin (8/12/13/14-digit + check digit)gtin
mpnmpn
offers.itemConditioncondition
offers.priceValidUntil (sale pricing)sale_price
Additional imagesadditional_image_urls

Condition accepts new, refurbished or used. GTIN is the optional field most worth adding. Google Merchant Center and most marketplaces have used it as a product identifier for years, so including it costs nothing under OpenAI's spec and keeps the same record usable elsewhere. For how the protocols that read this data compare, see AP2 vs ACP vs MCP vs UCP.

Common markup mistakes that break agent parsing

  • Availability values outside the accepted list. “Limited stock” or “Few left” in place of in_stock, out_of_stock, pre_order, backorder or unknown is unreadable to a strict feed consumer.
  • Price and currency in two places that disagree. A feed price and a different number in on-page JSON-LD, even a few cents apart from rounding, is the kind of ambiguity an agent treats as a disqualifier.
  • Return and shipping policies left in prose. A shipping FAQ a person finds in ten seconds is invisible to a parser that reads only hasMerchantReturnPolicy and shippingDetails.
  • Missing or inconsistent brand and seller_name. Both are required in OpenAI's spec. A generic storefront name in the brand field, or a blank brand on private-label items, fails a required check.
  • Images that fail basic technical checks. A broken image_url, a placeholder graphic or an image behind a redirect chain counts as a missing image.

Do you need a separate product feed for each AI assistant?

Usually one master feed is enough, with a validation pass for each surface. ChatGPT, Google AI Mode and Gemini, and Perplexity all read the same core fields: title, price, availability, brand, images and identifiers. They differ in how they take in the data and in a few field-level details.

AI surfaceWhere it gets product dataWhat to check
ChatGPTOpenAI's product feed, uploaded as JSONL in OpenAI's format or as a Google-compatible tab- or comma-delimited fileThe nine required fields; availability is spelled pre_order in OpenAI's format and preorder in the Google-compatible format
Google AI Mode and GeminiYour Google Merchant Center feedFor UCP checkout, the native_commerce checkout eligibility attribute on each listing (early access in the US, Canada and Australia)
PerplexityThe Perplexity Merchant Program (free, by application), direct retailer feeds, or Shopify Catalog, which syncs Shopify stores automaticallyPerplexity hasn't published a public feed spec; Instant Buy checkout runs through PayPal

Sources: OpenAI's product feed specification, Google's Merchant Center help on UCP checkout and Shopify's April 2026 guide to Perplexity Shopping.

The practical setup is one source of truth for product data, usually your commerce platform or PIM, with an export for each surface generated from it. That keeps price and stock identical everywhere, which matters more than any single feed's format. Then validate each export against that surface's own documentation before you assume it complies. Promptwatch's ChatGPT monitoring for product pages shows which of your product pages ChatGPT recommends or skips in shopping answers, so you can confirm a feed change reached the answers.

Keeping your product feed accurate and fresh

No surface publishes a single mandatory refresh interval. OpenAI's feed spec asks merchants to keep price and availability current and to update the feed when a sale starts or ends. Agent checkout surfaces expect fresher data than the nightly batch uploads most catalogs were built around, and a nightly sync is a real risk during a flash sale or for a product that sells out mid-day.

Three practices keep the feed matched to reality:

  • Sync price and availability from the same system of record your checkout uses, so a separate export job can't drift out of step
  • Trigger a feed update on every promotion or inventory change, in addition to the scheduled sync
  • Monitor for sync jobs that silently stop, since a feed that stops updating produces the same “looks fine, is wrong” failure as a bad value

Testing whether your listings are agent-readable

Testing agent-readability takes three separate checks, and a listing can pass one and fail another with no obvious symptom.

  • Does your markup validate? Google's Rich Results Test and the Schema Markup Validator check that Product and Offer JSON-LD parses and includes the expected properties. This confirms the markup is well-formed. The next two checks confirm agents can reach it and use it.
  • Can shopping bots reach the pages carrying that data? Valid markup is worthless if the bot hits a 403, a bot-detection challenge or a rate limit before it parses the page. Whole-site crawlability for agent bots is covered in our guide to agentic web optimization. This check is narrower: it asks whether the data holds up once a bot reaches a product page.

Promptwatch's AI crawler logs show crawler identity, page requested and status code for each hit, so a blocked shopping bot becomes a specific, fixable event.

  • Are your products showing up in agent answers? Valid, reachable data still leaves the agent's choice open, so check real agent responses for real buyer-intent prompts.

Prompt Tracking runs your buyer-intent prompts across tracked AI platforms on a repeating schedule. Promptwatch's ChatGPT Shopping tracking shows brand-level share of voice in shopping responses and which product pages get recommended or skipped, so you can confirm a structured-data fix worked.

FAQ

Does this replace my existing SEO product page optimization?

No. Traditional SEO factors (page speed, backlinks, topical authority, crawlability) still decide whether product pages get indexed and surface in search and in citation-style AI answers. This guide covers an additional layer: whether the structured data behind the same page is complete and current enough for an agent to act on. A page can perform well in search and still fail these checks, and the reverse also happens.

How often do I need to update my product feed for agents?

As close to real time as your systems allow for anything that changes fast: price, availability and active promotions. No surface mandates a single interval, and OpenAI's spec asks for an update whenever a sale starts or ends. A stale field now costs you a recommendation or a completed sale, which is more than it cost when it only affected search ranking.

What product feed format do AI shopping agents need?

It depends on the surface. OpenAI accepts JSONL in its own format or a Google-compatible tab- or comma-delimited file. Google AI Mode and Gemini read your Google Merchant Center feed. Perplexity takes product data through its Merchant Program, direct retailer feeds or Shopify Catalog. Most retailers can generate all of these from one product data source.

Share this article

Be the brand AI recommends

Monitor your brand's visibility across ChatGPT, Claude, Perplexity, and Gemini. Get actionable insights and create content that gets cited by AI search engines.

Promptwatch Dashboard