Checkout-eligible offer field mapping
What it checks
Audits each PDP against the exact required-and-conditional field set of the OpenAI product feed spec, including its character caps and its conditional triggers, so the merchant learns which rows will be rejected before uploading a feed.
Why it matters
Falsifiable claim. The OpenAI feed spec enumerates a closed set of required fields: item_id (max 100), title (max 150), description (max 5000), brand (max 70), url, image_url, price with an ISO 4217 currency, and availability from a five-value enum, and target_countries. Three conditional triggers reject rows on top of that. gtin or mpn is required unless identifier_exists=no. availability_date is required when availability is pre_order or backorder. seller_privacy_policy and seller_tos are required when is_eligible_checkout=true.
Validation is row-by-row, so individual products fail silently while the feed as a whole succeeds. A PDP that cannot supply these values forces the merchant to hand-author or scrape them, which is precisely where price mismatch enters. Disproof condition: rows lacking gtin/mpn and identifier_exists being accepted as checkout-eligible.
Evidence
- OpenAI Product Feed Specification — OpenAI (vendor-doc, URL verified 2026-08-20)
- Required feed fields: item_id (<=100 chars), title (<=150), description (<=5000), brand (<=70), url, image_url, price (number + ISO 4217), availability enum {in_stock,out_of_stock,pre_order,backorder,unknown}, is_eligible_search, is_eligible_checkout, target_countries. CONDITIONAL hard requirements: availability_date required if availability is pre_order/backorder; seller_privacy_policy and seller_tos required if is_eligible_checkout=true; gtin or mpn required unless identifier_exists=no. Recommended: group_id, listing_has_variations, variant_dict, size, size_system, color, item_group_title, review_count, star_rating, q_and_a, reviews, age_restriction. Optional fulfillment field
shippinguses format country:region:service_class:price:handling_days:transit_days. Returns fields: accepts_returns, return_deadline_in_days (positive int), accepts_exchanges, return_policy (URL, HTTPS preferred). sale_price must be less than price. Formats: .txt/.tsv/.csv (+.gz), UTF-8, lowercase underscore header row. Parser auto-selects between OpenAI schema and a Google-compatible profile. - Merchant listing (Product) structured data — Google (vendor-doc, URL verified 2026-08-20)
- Required: name, image, offers; within offers price (or priceSpecification.price) and priceCurrency (3-letter ISO 4217). Recommended: gtin|gtin8|gtin12|gtin13|gtin14, mpn, sku, availability, priceValidUntil (ISO 8601), itemCondition, url, validFrom/validThrough, hasMerchantReturnPolicy, shippingDetails (OfferShippingDetails), aggregateRating, review, description, brand. Policies are recommended at Organization level.
- OpenAI Agentic Commerce documentation index — OpenAI (vendor-doc, URL verified 2026-08-20)
- Four specs: Product Feed (specs/spec.md), Agentic Checkout (specs/checkout.md), Delegated Payment (specs/payment.md), Feeds API (specs/api/feeds.md). Feed delivery via API (products, promotions endpoints) or File Upload/SFTP. No public feed-URL convention and no discovery file is defined. Feeds let ChatGPT ‘accurately index and display your products with up-to-date price and availability’.
- OpenAI Commerce: Get Started (feed onboarding) — OpenAI (vendor-doc, URL verified 2026-08-20)
- Product feed onboarding in ChatGPT is currently limited to approved partners via an application form. Confirms feed ingestion is push/upload-based (file upload or API), not a merchant-hosted public URL that OpenAI discovers — reinforcing that site-side audit checks must test the DATA a feed would be built from rather than the feed transport.
How it scores
Tier per evidence policy: scored — grade A meets the A/B bar required for scored audits.
Example failure
A 900-SKU store has clean Product markup but no gtin, mpn or sku anywhere, and prices rendered as the string ‘$1,299.00’ inside offers.price. Every row fails the identifier requirement and the numeric-price requirement, so the entire catalogue is ingested as search-eligible-only and never becomes checkout-eligible — a failure mode the merchant currently discovers only after applying for the partner programme.
Sources
- Product feed specification — OpenAI, vendor-doc (verified 2026-08-21)
- Merchant listing (Product) structured data — Google, vendor-doc (verified 2026-08-21)
- OpenAI Agentic Commerce documentation index — OpenAI, vendor-doc (verified 2026-08-20)
- OpenAI Commerce: Get Started (feed onboarding) — OpenAI, vendor-doc (verified 2026-08-20)