If you have any questions about your product catalog feed or any custom requirements, submit a support ticket using the Monetate Technical Support portal (support.monetate.com).
The legacy product catalog specification supports three file format types: XML, CSV, and TSV.
XML Format Requirements
If you adhere to these guidelines for XML product feeds, you can validate a feed using the feed validator available in Monetate. Once the feed passes, you can upload it for processing. If you have any questions about product feeds and any custom requirements, submit a support ticket using the Monetate Technical Support portal (support.monetate.com).
All XML feed files should adhere to the following requirements:
- XML files must be version 1.0.
- Character encoding must be UTF-8 without HTML escaping.
- Every product in a feed must be surrounded by an opening
<product>
tag and a closing</product>
tag.
CSV Format Requirements
All CSV feed files must adhere to the following requirements:
- Each field must have a header.
- Each product entry contains the minimum required fields and a maximum of 14 total fields.
- Every entry uses double quotation marks (") around each field for accurate data-parsing. Including these quotation marks, called comma escaping, is especially important for fields with line breaks, quotation marks, or commas.
- Any field that includes a double quotation mark character (") must be represented by two double quotation mark characters.
- Character encoding must be UTF-8.
Here is an example of comma escaping and using two double quotation mark characters:
product_id, product_name, product_description, brand_name, category_name
"33435", """Elegant"" Lounge Chair", "Chair with lumbar", "MoneChair","Chairs"
TSV Format Requirements
All TSV feed files should adhere to the following requirements:
- Each field must have a header.
- Each product entry contains the minimum required fields and a maximum of 14 total fields.
- Every entry uses double quotation marks (") around each field for accurate data-parsing. Including these quotation marks, called comma escaping, is especially important for fields with line breaks, quotation marks, or commas.
- Any field that includes a double quotation mark character (") must be represented by two double quotation mark characters.
- Character encoding must be UTF-8.
Fields
This table contains the required and optional fields for a product feed file.
Monetate has no predetermined idea of what categories are meaningful for your products or business and does not restrict your categories in any way.
Product ID
Header: product_id
Required: Yes
Specifications:
- Must match what Monetate collects on product detail and search pages
- Typically not a SKU but a higher-level identifier that identifies groups of products before further refinement based on size or color
- Maximum length of 32 characters
- Only alphanumeric (a–z, A–Z, or 0–9), forward slash (/), underscore (_), dash (-), and period (.) characters are acceptable
Example: 1135813
Product Name
Header product_name
Required: Yes
Specifications: Name of the product with maximum length of 128 characters
Example: Deluxe Stereo Headphones
Category Name
Header: category_name
Required: Yes
Specifications:
- Used for targeting product categories in experiences
- No predetermined categories set by Monetate, so each category is defined within its own container
- Maximum length of 128 characters per individual category name
- Unlimited number of categories per product
- Multiple names must be separated with a pipe (|) without a space before and after the pipe
Example: Clothing|Pants|Men's Pants
Price
Header: price
Required: Yes
Specifications:
- Current price of the product in decimal format
- For retail or strikethrough price, use
alt_price
- No support for pricing beyond active price and alternate price
Example: 33.40
Product URL
Header: url
Required: Yes
Specifications:
- Full URL to the product detail page
- Should include both the scheme and host portions of the URL
Example: http://www.example.com/products/diving_watch.htm
Product Image URL
Header: product_image_url
Required: Yes
Specifications:
- Full URL to a product image
- Should include both the scheme and host portions of the URL
Example: http://www.example.com/images/products/123.jpg
Product Description
Header: product_description
Required: No
Specifications:
- Description of the product with a maximum length of 1024 characters
- Should be plain text only, no HTML
Example: The latest electronics craze--this stereo is all the rage!
Alternate Price
Header: alt_price
Required: No
Specifications:
- An alternate price for display purposes only
- Must be in decimal format
Example: 33.50
Category ID
Header: category_id
Required: No
Specifications:
- Maximum length of 128 characters
- Only alphanumeric (a–z, A–Z, or 0–9) characters are acceptable
- Category ID must be unique per category name
Example: AbZ190430mm89
Availability
Header: availability
Required: No
Specifications:
- Denotes whether an item is in stock or out of stock
- Out-of-stock items are excluded from endcaps
- Acceptable values include
In Stock
andOut of Stock
- Other values such as
Presale
may be used but are equivalent toOut of Stock
Example: Out of Stock
Category Names and Category IDs
The way that category_name
and category_id
work together is as follows:
product_id, category_name, category_id
"AA329", "chair|furniture|wood", "c1|f3|w99"
catalog_category
category_id | category_name |
---|---|
c1 | chair |
f3 | furniture |
w99 | wood |
catalog_product_category
product_id | category_id |
---|---|
AA329 | c1 |
AA329 | f3 |
AA329 | w99 |
Product IDs and SKU
The way that product_id
and sku
work together is as follows.
<product>
<product_id>xyz888</product_id>
<categories>
<category>
<category_id>f1</category_id>
<category_id>f3</category_id>
</category>
</categories>
<skus>
<sku>1135813</sku>
<sku>223234</sku>
</skus>
</product>
product_id_sku
product_id | sku |
---|---|
xyz888 | 1135813 |
xyz888 | 223234 |
product_category
product_id | category_id |
---|---|
xyz888 | f1 |
xyz888 | f3 |
XML Examples
Single category example
<categories>
<category>
<category_id>cid1</category_id>
<category_name>category 1</category_name>
</category>
</categories>
Multiple category example
<categories>
<category>
<category_id>cid1</category_id>
<category_name>category 1</category_name>
</category>
<category>
<category_id>cid2</category_id>
<category_name>category 2</category_name>
</category>
</categories>
CSV Examples
Here's an example with the minimum required fields:
product_id, product_name, category_name, price, url, product_image_url
"33435", "High Back Lounge Chair", "chair", "299.99", http://www.monetate.com/products/123, "http://www.monetate.com/products/123.png"
Here's an example with both the minimum required fields and the optional fields:
product_id, product_name, product_description, category_name, category_id, price, alt_price, url, product_image_url, availability
"33435", "High Back Lounge Chair", "Durable chair with added lumbar support and cup holder", "chair", "
TSV Examples
Here's an example with the minimum required fields:
product_id | product_name | category_name | price | URL | product_image_URL |
---|---|---|---|---|---|
33435 | High-Back Lounge Chair | chair | 299.99 | http://www.monetate.com/products/123 | http://www.monetate.com/products/123.png |
Here's an example with both the minimum required fields and the optional fields:
product_id | product_name | product_description | category_name | category_id | price | alt_price | URL | product_image_URL | availability |
---|---|---|---|---|---|---|---|---|---|
33435 | High-Back Lounge Chair | Durable chair with added lumbar support and cup holder | chair | 1234 | 299.99 | 280.11 | http://www.monetate.com/products/123 | http://www.monetate.com/products/123.png | In Stock |