SKUHelm

Reference

Feed field reference

All 36 fields in OpenAI's product feed spec, in plain words. Checked against OpenAI's spec on 2026-10-07. If they disagree, the spec wins.

Required

On every row. A row missing one is not accepted.

item_idItem IDstring

Stable and unique for every item or variant. Keep leading zeros.

Regenerated on every export, so ChatGPT sees a new product each time.
titleTitlestring, max 150

The product name, including the variant you picked. 150 characters at most.

SEO-stuffed titles that run past 150 characters.
descriptionDescriptionstring, max 5,000

Factual plain text, 5,000 characters at most. No HTML.

Raw HTML pasted straight from the shop theme.
urlProduct URLurl

A public http or https page for this exact item.

Links to the collection page instead of the variant.
brandBrandstring

The real brand name. Placeholders are rejected.

Left blank on handmade goods. Your shop name usually counts.Set once for the whole store in SKUHelm
seller_nameSeller namestring

Your real trading name, on every row.

Missing entirely, because shop exports never include it.Set once for the whole store in SKUHelm
image_urlImageurl

A direct link to a JPEG or PNG anyone can open.

WebP-only images or links behind a CDN token.
availabilityAvailabilityenum

One of in_stock, out_of_stock, pre_order, backorder or unknown.

in_stockout_of_stockpre_orderbackorderunknown

Free text like "Ships soon" instead of an allowed value.
pricePricemoney

Amount and currency, like 79.99 USD. Positive, no thousands separators.

Currency symbols such as £24 instead of 24.00 GBP.

Needed for checkout

Needed before people can buy without leaving ChatGPT.

is_eligible_checkoutCheckout eligibleboolean

true to offer Instant Checkout. Needs search eligibility too.

seller_privacy_policyPrivacy policyurl

Public link to your privacy policy. Needed for checkout.

Set once for the whole store in SKUHelm
seller_tosTerms of serviceurl

Public link to your terms. Needed for checkout.

Set once for the whole store in SKUHelm

Needed for variants

Needed on every row that is one option of a product, like a size or colour.

group_idGroup IDstring

Shared by every variant of one product, and different from item_id.

listing_has_variationsHas variationsboolean

true on every variant row.

variant_dictVariant optionsobject

The options that pick this variant, like {"Size":"M"}.

Optional

Send them when you have them.

sale_priceSale pricemoney

Above zero, below price, same currency as price.

mpnMPNstring

Manufacturer part number, sent with brand.

additional_image_urlsMore imagesurl[]

Extra direct image links.

colorColourstring

Must match the image.

sizeSizestring

Use variant options when size picks the variant.

materialMaterialstring

The main materials.

genderGenderenum

male, female or unisex.

malefemaleunisex

age_groupAge groupenum

newborn, infant, toddler, kids or adult.

newborninfanttoddlerkidsadult

weightWeightstring

Positive net weight, sent with item_weight_unit.

item_weight_unitWeight unitenum

g, kg, oz or lb. Required whenever weight is set.

gkgozlb

shipping_priceShipping pricemoney

Zero or more, same currency as price.

Set once for the whole store in SKUHelm
return_deadline_in_daysReturn windowinteger

Whole days, only when accepts_returns is true.

Set once for the whole store in SKUHelm
store_countryStore countrystring

Two-letter ISO code, like GB.

Set once for the whole store in SKUHelm
target_countriesShips tostring

Two-letter ISO codes for the countries you sell to.

Set once for the whole store in SKUHelm