If you have any questions about your product feed or any custom requirements, submit a support ticket using the Monetate Technical Support portal (support.monetate.com).
Format Requirements
The specifications in this document are only relevant for feeds formatted as XML files. For feeds formatted as CSV files, see Product Feed Specifications: CSV. For feeds formatted as TSV files, see Product Feed Specifications: TSV.
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.
Fields
The information in this section describes the required and optional fields for a product feed file.
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
Examples
<product_id>1135813</product_id>
<product_id>AAABBCCDD</product_id>
<product_id>AbZ190-430_mm/89.pid</product_id>
Product Name
Header
product_name
Required
Yes
Specifications
Maximum length of 128 characters
Examples
<product_name>Deluxe Stereo Headphones</product_name>
<product_name>Portable Music Player</product_name>
<product_name>Electric Shaving Kit</product_name>
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
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>
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
Examples
<price>33.50</price>
<price>100.00</price>
<price>0.50</price>
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
Examples
<url>http://www.monetate.com/products/123</url>
<url>http://www.monetate.com/running_shoe.html</url>
<url>http://www.monetate.com/products/diving_watch.htm</url>
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
Examples
<product_image_url>http://www.monetate.com/images/products/123.jpg</product_image_url>
<product_image_url>http://www.monetate.com/images/house.png</product_image_url>
<product_image_url>http://www.monetate.com/example.gif>
Product Description
Header
product_description
Required
No
Specifications
Description of the product with a maximum length of 1,024 characters
Examples
<product_description>A lovely example of modern elegance and style</product_description>
<product_description>Red</product_description>
<product_description>The latest electronics craze—this stereo is all the rage!</product_description>
Alternate Price
Header
alt_price
Required
No
Specifications
- An alternate price for display purposes only
- Must be in decimal format
Examples
<alt_price>33.50</alt_price>
<alt_price>100.00</alt_price>
<alt_price>0.50</alt_price>
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
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>
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
Examples
<availability>In Stock</availability>
<availability>Out of Stock</availability>
<availability>Presale</availability>
Category Names and Category IDs
The way that category_name
and category_id
work together is as follows.
<product>
<product_id>AA329</product_id>
<categories>
<category>
<category_id>c1</category_id>
<category_name>chair</category_name>
</category>
<category>
<category_id>f3</category_id>
<category_name>furniture</category_name>
</category>
<category>
<category_id>w99</category_id>
<category_name>wood</category_name>
</category>
</categories>
</product>
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 |
Example with Minimum Required Fields
<?xml version="1.0" encoding="utf-8"?>
<catalog>
<product>
<product_id>33435</product_id>
<product_name>High Back Lounge Chair</product_name>
<categories>
<category>
<category_name>chair</category_name>
</category>
</categories>
<price>299.99</price>
<url>http://www.monetate.com/products/123</url>
<product_image_url>http://www.monetate.com/products/123.png</product_image_url>
</product>
</catalog>
Example with Minimum Required Fields and Optional Fields
<?xml version="1.0" encoding="utf-8"?>
<catalog>
<product>
<product_id>33435</product_id>
<product_name>High Back Lounge Chair</product_name>
<product_description>Durable chair with added lumbar support and cup holder</product_description>
<brand_name>MoneChair</brand_name>
<categories>
<category>
<category_name>chair</category_name>
<category_id>1234</category_id>
</category>
</categories>
<price>299.99</price>
<alt_price>280.11</alt_price>
<url>http://www.monetate.com/products/123</url>
<product_image_url>http://www.monetate.com/products/123.png</product_image_url>
<availability>In Stock</availability>
</product>
</catalog>