Skip to content

Channels and their fields

Every field each channel asks for, and what a value has to look like to be accepted. This is the list the Fields tab renders and the list the generator writes from, so a field named here is a field your feed can carry.

The tiers are the channels' own, and only one of them is a blocker:

Tier What it means
Required The channel refuses a product with nothing in this field, so Product Feed leaves that product out of the feed and counts it.
Recommended The channel takes the product either way and does less with it. Fields that stand in for each other are here, which is why a recommended field is never a red badge.
Optional Sent if you have it.

A field with nothing mapped and no fallback is left out of the file rather than sent empty — an empty element is a value a channel reads as an answer. The exception is a CSV feed, where every column is written for every row because a row that skipped one would move every value after it into the wrong heading.

Google Shopping

Google comes and fetches the file from the feed's own URL. Seven fields are required, which is the set Google refuses an item without. gtin, mpn and identifier_exists are listed as recommended rather than required because they stand in for each other — a product with an MPN and no barcode is a product Google accepts — so a feed missing all three is coarse rather than invalid.

Delivery The channel pulls the file from the feed's own URL
File .xml, served as application/xml
Google category sent as the numeric id

Required

Field In the file What it accepts
id g:id Text, up to 50 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
title g:title Text, up to 150 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
description g:description Text, up to 5000 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
link g:link A full web address, up to 2000 characters. A store-relative path is refused, because the channel fetches it from outside your store.
image_link g:image_link A full web address, up to 2000 characters. A store-relative path is refused, because the channel fetches it from outside your store.
availability g:availability One of in_stock, out_of_stock, preorder, backorder. Spacing and capitals are forgiven; anything else is left out.
price g:price A price, sent as the number to two decimal places and the feed's currency code — 19.99 EUR — because every channel refuses a currency symbol. Anything that is not a number is left out.
Field In the file What it accepts
brand g:brand Text, up to 70 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
gtin g:gtin Text, up to 50 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
mpn g:mpn Text, up to 70 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
identifier_exists g:identifier_exists One of yes, no. Spacing and capitals are forgiven; anything else is left out.
condition g:condition One of new, refurbished, used. Spacing and capitals are forgiven; anything else is left out.
google_product_category g:google_product_category Set on the Categories tab, not mapped here. Your own categories are placed against Google's taxonomy once and every feed on that store and language sends what you set.
product_type g:product_type Text, up to 750 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
sale_price g:sale_price A price, sent as the number to two decimal places and the feed's currency code — 19.99 EUR — because every channel refuses a currency symbol. Anything that is not a number is left out.
item_group_id g:item_group_id Text, up to 50 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
shipping_weight g:shipping_weight Text, up to 50 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
availability_date g:availability_date A date, sent in ISO 8601.

Optional

Field In the file What it accepts
additional_image_link g:additional_image_link A full web address, up to 2000 characters. A store-relative path is refused, because the channel fetches it from outside your store.
mobile_link g:mobile_link A full web address, up to 2000 characters. A store-relative path is refused, because the channel fetches it from outside your store.
expiration_date g:expiration_date A date, sent in ISO 8601.
color g:color Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
size g:size Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
material g:material Text, up to 200 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
pattern g:pattern Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
age_group g:age_group One of newborn, infant, toddler, kids, adult. Spacing and capitals are forgiven; anything else is left out.
gender g:gender One of male, female, unisex. Spacing and capitals are forgiven; anything else is left out.
adult g:adult One of yes, no. Spacing and capitals are forgiven; anything else is left out.
is_bundle g:is_bundle One of yes, no. Spacing and capitals are forgiven; anything else is left out.
multipack g:multipack A whole number.
max_handling_time g:max_handling_time A whole number.
shipping_label g:shipping_label Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
custom_label_0 g:custom_label_0 Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
custom_label_1 g:custom_label_1 Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
custom_label_2 g:custom_label_2 Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
custom_label_3 g:custom_label_3 Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
custom_label_4 g:custom_label_4 Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.

Meta

Meta comes and fetches the file from the feed's own URL, and reads the same document Google does. Two of its rules differ, and both are Meta's: brand and condition are required, so a store with no manufacturer on a product has a valid Google feed and an invalid Meta one; and the category is sent as Google's full path rather than as the numeric id. OpenCart has no condition column, so condition is the field a fallback literal — new — is what you want on.

Delivery The channel pulls the file from the feed's own URL
File .xml, served as application/xml
Google category sent as the full path

Required

Field In the file What it accepts
id g:id Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
title g:title Text, up to 200 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
description g:description Text, up to 9999 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
link g:link A full web address, up to 2000 characters. A store-relative path is refused, because the channel fetches it from outside your store.
image_link g:image_link A full web address, up to 2000 characters. A store-relative path is refused, because the channel fetches it from outside your store.
availability g:availability One of in stock, out of stock, available for order, preorder, discontinued. Spacing and capitals are forgiven; anything else is left out.
condition g:condition One of new, refurbished, used. Spacing and capitals are forgiven; anything else is left out.
price g:price A price, sent as the number to two decimal places and the feed's currency code — 19.99 EUR — because every channel refuses a currency symbol. Anything that is not a number is left out.
brand g:brand Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
Field In the file What it accepts
google_product_category g:google_product_category Set on the Categories tab, not mapped here. Your own categories are placed against Google's taxonomy once and every feed on that store and language sends what you set.
quantity_to_sell_on_facebook g:quantity_to_sell_on_facebook A whole number.
gtin g:gtin Text, up to 50 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
mpn g:mpn Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
size g:size Text, up to 200 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
item_group_id g:item_group_id Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
product_type g:product_type Text, up to 750 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
sale_price g:sale_price A price, sent as the number to two decimal places and the feed's currency code — 19.99 EUR — because every channel refuses a currency symbol. Anything that is not a number is left out.
sale_price_effective_date g:sale_price_effective_date Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.

Optional

Field In the file What it accepts
additional_image_link g:additional_image_link A full web address, up to 2000 characters. A store-relative path is refused, because the channel fetches it from outside your store.
mobile_link g:mobile_link A full web address, up to 2000 characters. A store-relative path is refused, because the channel fetches it from outside your store.
expiration_date g:expiration_date A date, sent in ISO 8601.
color g:color Text, up to 200 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
material g:material Text, up to 200 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
pattern g:pattern Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
age_group g:age_group One of newborn, infant, toddler, kids, teen, adult, all ages. Spacing and capitals are forgiven; anything else is left out.
gender g:gender One of male, female, unisex. Spacing and capitals are forgiven; anything else is left out.
status g:status One of active, archived. Spacing and capitals are forgiven; anything else is left out.
shipping g:shipping Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
shipping_weight g:shipping_weight Text, up to 50 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
custom_label_0 g:custom_label_0 Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
custom_label_1 g:custom_label_1 Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
custom_label_2 g:custom_label_2 Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
custom_label_3 g:custom_label_3 Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
custom_label_4 g:custom_label_4 Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.

Microsoft Advertising

Microsoft Advertising takes a file you upload yourself, so this feed has no URL and no token: you regenerate it and press Download. The file is a CSV, and a CSV row is positional — every column the channel declares is written for every product, empty where the field resolved to nothing. gtin and mpn are listed as recommended although Microsoft's own table calls both required, because required here means the product is left out of the feed, and a store that has never recorded a barcode would get an empty file rather than one Microsoft matches on title and brand. Three attributes Microsoft requires — the channel, the content language and the target country — are properties of a submission rather than columns of a file, and are set once in Microsoft Merchant Center.

Delivery You download the file and upload it yourself
File .csv, served as text/csv; charset=utf-8
Google category sent as the numeric id

Required

Field In the file What it accepts
id id Text, up to 50 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
title title Text, up to 150 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
link link A full web address, up to 2000 characters. A store-relative path is refused, because the channel fetches it from outside your store.
image_link image_link A full web address, up to 2000 characters. A store-relative path is refused, because the channel fetches it from outside your store.
price price A price, sent as the number to two decimal places and the feed's currency code — 19.99 EUR — because every channel refuses a currency symbol. Anything that is not a number is left out.
availability availability One of in stock, out of stock, preorder. Spacing and capitals are forgiven; anything else is left out.
condition condition One of new, used, refurbished. Spacing and capitals are forgiven; anything else is left out.
brand brand Text, up to 70 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
Field In the file What it accepts
description description Text, up to 5000 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
gtin gtin Text, up to 50 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
mpn mpn Text, up to 70 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
google_product_category google_product_category Set on the Categories tab, not mapped here. Your own categories are placed against Google's taxonomy once and every feed on that store and language sends what you set.
product_type product_type Text, up to 750 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
sale_price sale_price A price, sent as the number to two decimal places and the feed's currency code — 19.99 EUR — because every channel refuses a currency symbol. Anything that is not a number is left out.
sale_price_effective_date sale_price_effective_date Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
item_group_id item_group_id Text, up to 50 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
size size Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
shipping shipping Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
shipping_label shipping_label Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
shipping_weight shipping_weight Text, up to 50 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
mobile_link mobile_link A full web address, up to 2000 characters. A store-relative path is refused, because the channel fetches it from outside your store.
seller_name seller_name Text, up to 255 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.

Optional

Field In the file What it accepts
additional_image_link additional_image_link A full web address, up to 2000 characters. A store-relative path is refused, because the channel fetches it from outside your store.
color color Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
material material Text, up to 200 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
pattern pattern Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
gender gender One of male, female, unisex. Spacing and capitals are forgiven; anything else is left out.
age_group age_group One of newborn, infant, toddler, kids, adult. Spacing and capitals are forgiven; anything else is left out.
multipack multipack A whole number.
is_bundle is_bundle One of yes, no. Spacing and capitals are forgiven; anything else is left out.
adult adult One of yes, no. Spacing and capitals are forgiven; anything else is left out.
identifier_exists identifier_exists One of yes, no. Spacing and capitals are forgiven; anything else is left out.
expiration_date expiration_date A date, sent in ISO 8601.
unit_pricing_measure unit_pricing_measure Text, up to 50 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
unit_pricing_base_measure unit_pricing_base_measure Text, up to 50 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
promotion_id promotion_id Text, up to 60 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
custom_label_0 custom_label_0 Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
custom_label_1 custom_label_1 Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
custom_label_2 custom_label_2 Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
custom_label_3 custom_label_3 Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.
custom_label_4 custom_label_4 Text, up to 100 characters. HTML is stripped and anything longer is cut, which the Fields tab marks as truncated.