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 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. |
Recommended
| 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 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. |
Recommended
| 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. |
Recommended
| 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. |