Your product feed is the single file that determines whether ChatGPT can surface your products with instant buy-now links. Get the feed right and your products show up inside AI conversations with images, prices, and one-click checkout. Get it wrong and you don't exist in AI commerce. There's no middle ground.
ChatGPT's shopping integration is now live. Shopify stores are auto-enrolled through Agentic Storefronts. Everyone else needs manual setup. But whether you're auto-enrolled or building a feed from scratch, the quality of your product data is what separates stores that get recommended from stores that get ignored.
This guide covers the exact feed spec, field-by-field requirements, format comparisons, common errors that get products rejected, and the validation steps to confirm everything works before you go live.
Why Your Product Feed Is the Foundation of AI Commerce
Traditional product feeds exist to power comparison shopping engines and ad platforms. They're built around keywords, bids, and click-through URLs. A product feed for ChatGPT instant checkout serves a fundamentally different purpose: it gives an AI model enough structured context to decide whether your product is the right answer to a conversational query.
Think about how ChatGPT recommends products. A user doesn't type "blue running shoes size 10." They say something like "I need a running shoe for flat feet that won't cause shin splints on long runs." ChatGPT has to match that nuanced request to your product data. If your feed only contains a title, price, and generic description, the AI can't make that connection. It'll recommend the competitor whose feed includes arch support type, pronation correction level, and cushioning category.
I think the product feed is going to be the single biggest competitive lever in ecommerce over the next two years. The stores winning at AI commerce won't be the ones with the biggest ad budgets. They'll be the ones with the richest product data.
Step 1: Check Your Enrollment Status
Your setup path depends entirely on your platform. Some merchants are already indexed. Others need to apply.
| Platform | Auto-Enrolled? | Action Required |
|---|---|---|
| Shopify | Yes | Review settings in Shopify Admin under Sales Channels. Opt out if desired. |
| Etsy | Yes | No action needed. Products are indexed automatically. |
| WooCommerce | No | Submit merchant application at chatgpt.com/merchants. Build and host a product feed. |
| BigCommerce | No | Submit merchant application at chatgpt.com/merchants. Build and host a product feed. |
| Custom / headless | No | Apply + implement Agentic Commerce Protocol endpoints + build product feed. |
Shopify merchants got the easiest path here. The Agentic Storefronts integration handles feed generation, inventory sync, and checkout routing automatically. But "automatic" doesn't mean "optimized." Even auto-enrolled stores need to tune their product data for better AI recommendations.
Step 2: Choose Your Feed Format
ChatGPT accepts product feeds in four formats. Your choice affects how much product data you can include and how reliably it gets parsed.
| Format | Pros | Cons | Best For |
|---|---|---|---|
| JSON | Handles nested data (variants, attributes), easy to validate, native to most APIs | Larger file sizes for big catalogs | Most stores. Recommended default. |
| XML | Familiar if you use Google Merchant Center, well-supported by feed tools | Verbose, harder to debug, easy to introduce encoding errors | Stores adapting an existing Google Shopping feed |
| CSV | Simple, small file sizes, easy to edit manually | Cannot handle nested data, variant arrays break, descriptions with commas cause parsing errors | Tiny catalogs (under 50 SKUs) with no variants |
| TSV | Avoids the comma-in-description problem that breaks CSV | Still flat. No nesting. Limited tooling support. | Small catalogs where CSV is causing issues |
Use JSON unless you have a specific reason not to. It handles variant arrays, structured specs, and multi-paragraph descriptions without data loss. CSV and TSV feeds are technically accepted, but they flatten your data in ways that reduce how well ChatGPT can match products to conversational queries.
Step 3: Map Your Required Fields
Missing a required field means ChatGPT skips your product entirely. Not "ranks it lower." Skips it. Here's every field you need, plus the recommended fields that separate top performers from the rest.
| Field | Required? | Format | Notes |
|---|---|---|---|
| title | Yes | String, max 150 chars | Brand + product name + key differentiator. Avoid keyword stuffing. |
| description | Yes | String, max 5000 chars | Natural language. Include use cases, specs, who it's for. This is the primary field ChatGPT reads. |
| price | Yes | Number + ISO 4217 currency code | Always include the currency code (USD, GBP, EUR). No currency symbols in the number field. |
| availability | Yes | Enum: in_stock, out_of_stock, preorder | Must reflect real-time inventory. Stale availability kills trust. |
| product_url | Yes | HTTPS URL | Direct link to the product page. No redirects. No tracking parameters that break the URL. |
| image_url | Yes | HTTPS URL, min 800x800px | White background preferred. Displayed as a product card thumbnail. |
| brand | Yes | String | Exact brand name as it appears on your site and across the web. |
| identifier | Yes | GTIN, MPN, or SKU | At least one unique identifier. GTIN (UPC/EAN) is strongest for product matching. |
| review_count | Recommended | Integer | Products with reviews get prioritized over those without. |
| average_rating | Recommended | Float (1.0 to 5.0) | Aggregate rating. Must match your on-site display. |
| variants | Recommended | Array of objects | Size, color, material. Each variant needs its own price and availability. |
| shipping_info | Recommended | Object (rate, est. days, free threshold) | ChatGPT displays shipping cost in product cards. Missing data causes hesitation. |
| use_case_tags | Recommended | Array of strings | Contextual tags like "flat feet," "marathon training," "wide fit." Helps match conversational queries. |
The "recommended" fields aren't technically mandatory, but skipping them is a competitive disadvantage. When ChatGPT decides between two similar products, review data, shipping transparency, and use-case tags are the tiebreakers.
Step 4: Write AI-Optimized Descriptions
Your product description is the most important field in the entire feed. It's not a character-limited ad headline. It's a 5,000-character opportunity to tell ChatGPT exactly when and why to recommend your product.
Most stores copy their on-site product description into the feed and call it done. That's a mistake. Your on-site description is written for humans browsing your store. Your feed description needs to be written for an AI deciding whether your product is the best answer to a specific conversational question.
Here's what a strong feed description includes:
- What the product is in one plain sentence. No brand voice, no marketing fluff.
- Who it's for with specific audience segments. "Designed for runners with flat feet and mild overpronation" beats "great for all runners."
- Key specs in a parseable format. Weight, dimensions, materials, compatibility.
- Use cases that map to real queries. "Ideal for marathon training on pavement, daily 5K runs, and treadmill sessions" gives ChatGPT three distinct query hooks.
- Comparison context. What makes this different from alternatives? "12mm heel drop compared to the industry standard 10mm" helps ChatGPT differentiate during comparisons.
- Negative fit signals. "Not suitable for trail running or wet conditions" prevents bad recommendations that lead to returns and negative reviews.
I think the description field alone accounts for more than half of whether a product gets recommended. Stores that write rich, specific, AI-readable descriptions will consistently outperform stores that paste in marketing copy.
Is your store even visible to AI right now?
A perfect product feed won't help if ChatGPT doesn't trust your brand. Check your AI authority score for free and see how you compare to competitors before investing in feed optimization.
Check Your AI Authority Score →Step 5: Set Up Your Feed by Platform
Shopify: Native Integration (Recommended)
Shopify's Agentic Storefronts handle feed generation automatically. Your products are already indexed. But "indexed" and "optimized" are two different things.
- Go to Settings > Sales Channels in your Shopify admin and review your Agentic Storefront configuration.
- Select which products and collections to include. Start with your top sellers.
- Review the auto-generated descriptions. The native integration pulls from your Shopify product descriptions, which are usually too short for optimal AI matching.
- Enrich descriptions using Shopify metafields. Create custom metafields for use-case tags, comparison attributes, and expanded descriptions that don't clutter your storefront.
- Add GTINs/UPCs to all products. This helps with product matching and deduplication across merchants.
Google Shopping Feed Adapter
If you already have a Google Shopping feed, you can adapt it for ChatGPT. This works for stores with existing feed management infrastructure.
- Export your current Google Merchant Center feed (XML or CSV).
- Map Google fields to ChatGPT's required fields. Most map directly: title, description, price, link, image_link.
- Enrich the descriptions. Google Shopping descriptions are typically 100-500 characters. ChatGPT allows 5,000. Fill that space with use cases, specs, and comparison context.
- Add the fields Google doesn't use: use_case_tags, shipping_info object, and variant arrays with per-variant pricing.
- Convert to JSON format for best results.
- Host the feed at a public HTTPS URL and submit it through the ChatGPT merchant portal.
Custom Feed (WooCommerce, BigCommerce, Headless)
- Apply at chatgpt.com/merchants. You'll need your store URL, catalog size, and payment processor details.
- Build a JSON feed that includes all required fields from the spec table above.
- Set up a scheduled job to regenerate the feed every 4-6 hours. ChatGPT supports refreshes as frequent as every 15 minutes if your inventory changes rapidly.
- Push the feed via encrypted HTTPS to the OpenAI-provided endpoint.
- Implement Agentic Commerce Protocol endpoints if you want in-chat checkout (optional; discovery-only mode works without it).
Regardless of which path you take, pair your product feed with proper on-site schema markup for AI. The feed gets you into ChatGPT's product index. Schema markup on your actual product pages strengthens the trust signal when ChatGPT cross-references your site.
Step 6: Validate Before You Go Live
Feed errors are silent killers. Your product won't show a "rejected" badge. It just won't appear. You won't know unless you actively validate.
- JSON syntax validation. Use a JSON linter. A single missing comma or unescaped quote breaks the entire feed.
- Required field check. Script a pass over every product object to confirm all 8 required fields are present and non-empty.
- URL validation. Every product_url and image_url should return HTTP 200. Broken links mean skipped products.
- Price format check. No currency symbols in the number field. Currency code must be ISO 4217 (USD, not $).
- Image size check. All images must be at least 800x800 pixels. Smaller images get rejected.
- Availability accuracy. Cross-reference your feed availability against your actual inventory. One "in_stock" product that's actually sold out erodes trust for the entire feed.
- Description length audit. Flag any description under 200 characters. Short descriptions make it nearly impossible for ChatGPT to match your product to nuanced queries.
- Duplicate identifier check. Every product needs a unique GTIN, MPN, or SKU. Duplicates cause unpredictable behavior.
Common Errors That Get Products Rejected
These are the mistakes that come up repeatedly across stores setting up their product feed for ChatGPT instant checkout.
| Error | What Happens | Fix |
|---|---|---|
| Price as string with currency symbol ("$29.99") | Feed parsing error, product skipped | Use numeric value (29.99) + separate currency_code field ("USD") |
| HTTP image URLs (not HTTPS) | Image won't display in the product card | Ensure all image URLs use HTTPS |
| Out-of-stock items listed as in_stock | User clicks buy, gets an error. Trust penalty on your feed. | Sync feed with real-time inventory. Update every 4-6 hours minimum. |
| Missing brand field | Product can't be associated with your brand entity in ChatGPT's knowledge graph | Include your exact brand name on every product |
| Generic 50-word description | ChatGPT can't match the product to specific queries. Low recommendation rate. | Expand to 200+ words with use cases, specs, and comparison context |
| Redirect chains on product_url | Slow resolution, potential timeout, product may be skipped | Use final destination URLs with no redirects |
| Variants listed as separate products | Dilutes review count and authority across duplicates | Use the variants array within a single product object |
Google Shopping Feed vs. ChatGPT Feed: Key Differences
If you're coming from Google Merchant Center, you probably think your existing feed is good enough. It isn't. Here are the critical differences.
| Dimension | Google Shopping Feed | ChatGPT Product Feed |
|---|---|---|
| Description length | Typically 100-500 chars (truncated in ads) | Up to 5,000 chars. Longer is better. |
| Description purpose | Keyword matching for ad targeting | Contextual understanding for conversational recommendations |
| Use-case tags | Not supported | Supported and recommended. Directly improves query matching. |
| Variant handling | Each variant is a separate product entry | Variants nested under a single product object (preferred) |
| Ranking factor | Bid amount + relevance score | Brand authority + data richness + review sentiment |
| Ad spend impact | Direct. Higher bid = more visibility. | Negligible. Authority signals matter, not spend. |
| Refresh expectation | Daily minimum | Every 4-6 hours recommended, 15-minute minimum supported |
The biggest difference is the description field. Google truncates descriptions in Shopping ads, so most merchants keep them short. ChatGPT reads every character of a 5,000-character description and uses it to decide when your product is relevant. Leaving that space empty is like leaving money on the counter.
Feed vs. Brand Authority: You Need Both
Here's something a lot of guides skip: a perfect product feed is necessary but not sufficient. The feed gets your products into the system. Brand authority determines whether ChatGPT actually recommends them.
Think of it like a job application. The feed is your resume. It gets you past the initial screening. But the hiring decision is based on your reputation and references. In AI commerce terms, that means review sentiment across Trustpilot, Google, and Reddit. It means brand mention frequency in places where AI models train their understanding. It means structured schema markup on your actual product pages. And it means content authority in your niche through blog posts, YouTube, and community presence.
You can check where your brand stands on these signals with our free AI Authority Checker. It tests your visibility across ChatGPT, Perplexity, and Google AI Overviews and identifies the specific gaps holding you back.
Feed Refresh Frequency: How Often to Update
A stale feed is worse than no feed. If ChatGPT surfaces a product at $29.99 and the user clicks through to find it's actually $39.99, that's a trust violation. Do it enough times and your entire feed gets deprioritized.
- Static pricing, stable inventory: Every 24 hours is fine. This covers handmade goods, custom products, and stores with slow-moving catalogs.
- Regular price changes, moderate inventory turnover: Every 4-6 hours. This is the right cadence for most Shopify stores.
- Flash sales, dynamic pricing, high-velocity inventory: Every 15 minutes to 1 hour. Set up webhooks to trigger feed regeneration on inventory changes.
You cannot set up the feed once and forget about it. This is a living file. Treat it like your checkout page. If it breaks, you lose sales and you may not even notice.
The 4% Fee: Worth It or Not?
OpenAI charges a 4% fee on sales completed through ChatGPT checkout, on top of your existing payment processing fees.
For a $50 product with 40% gross margin, that's $2 to OpenAI plus roughly $1.75 to your payment processor. You're left with about $16.25 in gross profit before shipping and fulfillment.
Compare that to your current customer acquisition cost. If you're paying $15-$25 per acquisition on Meta or Google Ads, a ChatGPT customer that costs $2 in platform fees is a bargain. If your CAC is already low through organic traffic, the 4% feels steeper. My take: for most stores, it's a reasonable discovery channel fee. But if you're operating on margins under 25%, run the math carefully.
Advanced: Enriching Your Feed for Competitive Advantage
Once the basics are covered, here's where you pull ahead of competitors who stopped at the minimum spec.
Add comparison attributes. If ChatGPT is choosing between your product and a competitor's, it needs data points to differentiate. Include attributes like "12mm heel drop," "280g weight," "carbon fiber plate construction." These are the values ChatGPT uses to answer "which running shoe has the most cushioning?"
Add seasonal context. Tag products with seasonal relevance: "spring marathon training," "winter layering essential," "back-to-school backpack." ChatGPT factors in timing when making recommendations.
Cross-reference your schema markup. Your feed data and your on-site schema markup should tell the same story. If your feed says "4.7 stars, 342 reviews" and your Product schema says "4.5 stars, 289 reviews," that inconsistency hurts trust. I believe this kind of data hygiene will become a ranking signal in its own right as AI commerce matures.
Monitor and iterate. Check your analytics for referrals from chat.openai.com and chatgpt.com. If you're hosting a custom feed, monitor server logs for the OpenAI crawler user agent. Ask ChatGPT to recommend products in your category and see if yours appear. If they don't, cross-reference against the AI Authority Checker to diagnose whether the gap is in your feed data or your brand signals.
Frequently Asked Questions
What format does ChatGPT instant checkout require for product feeds?
ChatGPT accepts JSON, XML, CSV, and TSV formats. JSON is the recommended default because it handles nested attributes like variant arrays and structured descriptions without data loss. The feed must be served over HTTPS at a publicly accessible URL or pushed to an OpenAI-provided endpoint.
Which product feed fields are required for ChatGPT instant checkout?
Required fields: product title, description, price with currency code, availability status, product URL, image URL, brand name, and a unique identifier (GTIN, MPN, or SKU). Strongly recommended additions include review count, average rating, variant attributes, shipping info, and use-case tags.
How often should I update my ChatGPT product feed?
Every 24 hours at minimum. If your pricing or inventory changes frequently, every 4-6 hours. ChatGPT supports refresh intervals as frequent as every 15 minutes. Stale feeds with wrong prices or out-of-stock items will get deprioritized.
Can Shopify stores automatically generate a ChatGPT product feed?
Yes. Shopify stores are auto-enrolled through the Agentic Storefronts integration as of late March 2026. You can also build custom feeds via Liquid templates or adapt an existing Google Shopping feed for more control over descriptions and field mapping.
Does having a product feed guarantee my products appear in ChatGPT?
No. A properly formatted feed is necessary but not sufficient. ChatGPT also evaluates brand authority, review sentiment, mention frequency across platforms like Reddit and YouTube, and on-site schema markup. The feed gets you into the index. Brand authority determines whether you get recommended.
What's the difference between a Google Shopping feed and a ChatGPT product feed?
Google Shopping feeds focus on ad-targeting attributes and short descriptions. ChatGPT feeds need 5,000-character contextual descriptions, use-case tags, nested variant arrays, and comparison-ready attribute data. You can adapt a Google feed, but you'll need to significantly enrich the descriptions and add fields Google doesn't support.

