Legacy Product Feed Specification

This product catalog/feed type is deprecated. Unless you are a Monetate client still using the legacy product specification, refer to the current product catalog specification.

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

See the Receiving Feed-Parsing Error Notifications section of Upload a Product Feed for the steps to receive emails from the Moneate platform informing you of feed-parsing errors.

The legacy product catalog specification supports three file format types: XML, CSV, and TSV.

The XML format is the default format for product feed ingestion. Therefore, you must submit a support ticket using the Monetate Technical Support portal (support.monetate.com) before uploading a product feed in a CSV or TSV file.

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.

Monetate natively supports UTF-8 characters up to the Specials Unicode block. To encode characters beyond this type, you should use HTML encoding. For more information about the Specials block, refer to the Specials PDF from The Unicode Consortium (unicode.org).

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"

Monetate natively supports UTF-8 characters up to the Specials Unicode block. To encode characters beyond this type, you should use HTML encoding. For more information about the Specials block, refer to the Specials PDF from The Unicode Consortium (unicode.org).

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.

Monetate natively supports UTF-8 characters up to the Specials Unicode block. To encode characters beyond this type, you should use HTML encoding. For more information about the Specials block, refer to the Specials PDF from The Unicode Consortium (unicode.org).

Fields

This table contains the required and optional fields for a product feed file.

Any information that you include in a product feed must match the values that you collect on your site through the addCartRows, addPurchaseRows, addProducts, and addProductDetails method calls.

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 and Out of Stock
  • Other values such as Presale may be used but are equivalent to Out of Stock

Example: Out of Stock

If you don't intend to include or exclude product categories from Visual Search results or if you don't intend to use Visual Search at all, you can remove category_id from product feeds. If you have questions, submit a support ticket using the Monetate Technical Support portal (support.monetate.com).

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
Table of Contents