SkuWatch AI Visibility Agent Install on Shopify

Platform update

ChatGPT Product Feeds for Shopify: Fields and Variants

The short answer

Learn which OpenAI product-feed fields Shopify merchants should map, how to represent variants, and how to check price, stock, URLs, and IDs.

By skuwatch editor

For
Shopify merchants and catalog managers
Reading time
10 minutes
Technical level
Moderate
Last reviewed
September 9, 2026
SkuWatch AI Visibility Agent loopMonitor

Direct answer

A ChatGPT product feed is a structured catalog input for product discovery. In OpenAI’s current stable file-upload specification, submit one row per purchasable item or variant. Each row needs a stable item ID plus factual title, description, destination URL, brand, seller name, image URL, price, and availability. Variants need separate item IDs, a shared group ID, and their selected option values.

For Shopify, map those fields from the current product and variant records, then reconcile every row against the public destination page. A feed can make catalog facts available for discovery; acceptance does not guarantee that ChatGPT will show, cite, or recommend a product. See OpenAI’s official product feed specification and commerce setup guide.

A feed is not another product description

OpenAI’s commerce guide describes sharing a structured product feed as the starting point for product discovery integration. The feed provides catalog records that ChatGPT can use to index products, understand attributes, and present current shopping information.

A feed is designed for precise fields, not page layout. It may carry:

  • stable item identity
  • title and description
  • destination URL
  • images
  • brand and identifiers
  • price and availability
  • variant attributes

Required discovery fields to map

OpenAI’s stable schema currently lists nine required fields for each discovery row:

Feed field Shopify source to verify Important constraint
item_id variant ID or another durable catalog key unique per item or variant; never recycle it for a different item
title product title plus selected options where relevant factual and concise
description product or variant description plain text; no invented claims
url public product destination stable and variant-selected when possible
brand product vendor or verified brand field use the real brand, not a placeholder
seller_name merchant identity use the real seller name
image_url current product or variant image direct image URL showing the item
price current variant price and currency major currency units, such as 89.00 CAD
availability current sellable state use a supported value; use unknown when stock is genuinely unavailable

This is a mapping checklist, not a claim that every Shopify store has an enabled direct feed. Feed setup, supported markets, Ads, and checkout have separate requirements and must be confirmed with OpenAI.

The Shopify source still matters

For a Shopify merchant, the product record is often the operational source for title, description, variants, inventory, price, and images. Shopify Catalog or another integration may transform that data for an AI channel.

The store owner should ask:

  1. Which Shopify fields supply the feed?
  2. How often do price and stock update?
  3. Which market and currency does each record represent?
  4. How are variants separated?
  5. Where can rejected or ineligible records be seen?

Stable identity prevents catalog drift

An item_id should remain stable for the same purchasable item. GTIN and MPN can help identify products when legitimately assigned. A variant that changes item ID on every export can lose continuity.

The destination URL should resolve successfully to the intended public product. Redirecting every market to a generic homepage weakens the connection between the feed record and product evidence.

Source: OpenAI product feed specification.

Represent Shopify variants as separate rows

Do not flatten every size or color into one generic record when price, availability, URL, or image differs. OpenAI’s schema says each variant row should have its own item_id, share a group_id, set listing_has_variations to true, and provide its selected options in variant_dict. Each row carries its own commercial facts.

{
  "item_id": "gid-shopify-variant-456",
  "group_id": "gid-shopify-product-123",
  "listing_has_variations": true,
  "variant_dict": { "Color": "Black", "Size": "10" },
  "title": "Trail shoe — Black, size 10",
  "url": "https://example.com/products/trail-shoe?variant=456",
  "price": "89.00 CAD",
  "availability": "in_stock"
}

This abbreviated example shows the variant relationship; it omits other required fields and is not a complete upload row. To expose the same selection accurately on a theme, use the Shopify product and variant Liquid guide.

Use a three-source reconciliation table

For one SKU, compare:

Fact Shopify admin Public page Feed record
item identity SKU and variant selected option stable item_id
title current current accurate and concise
price CAD 89 CAD 89 CAD 89
availability available add to cart works in stock
URL product handle canonical URL same destination

Descriptions can be formatted differently, but the commercial facts must agree.

What not to do

Do not add invented keywords, fake identifiers, unsupported claims, or a dozen near-duplicate records. Do not assume feed acceptance guarantees a ChatGPT recommendation. Product eligibility and final selection remain platform decisions.

For broader context, read Webpages, product feeds and Shopify Catalog. For an operational check, follow the Shopify price versus page JSON-LD guide and add the feed row as the third comparison source.

Community discussion

Add to the article

Ask a technical question, share a storefront result, or challenge a conclusion with evidence.

Comments are public. Do not post customer data, credentials, private store information, promotional spam, or unsupported accusations. Comments may be moderated.