Catalog product data

This is for:


Products are searchable items. In a catalog without variants, a product is also a purchasable item.

Here’s an example of a JSON representation of a product named Coveo Soccer Shoes - Red, which includes generic information such as its description, image, and price.

  "documentId": "product://001-red", 1
  "FileExtension": ".html",
  "ec_name": "Coveo Soccer Shoes - Red",
  "model": "Authentic",
  "ec_brand": ["Coveo"],
  "ec_description": "<p>The astonishing, the original, and always relevant Coveo style.</p>",
  "color": ["Red"],
  "ec_item_group_id": "001",
  "productid": "001-red", 2
  "ec_images": ["https://myimagegallery?productid"],
  "gender": "Men",
  "price_dict": { 3
      "": "28.00",
      "store1": "28.00",
      "store2": "30.00"
  "ec_category": "Shoes ; Shoes|Soccer shoes ; Shoes|Sport shoes|Soccer shoes", 4
  "objecttype": "Product" 5
1 The value of the documentId metadata is the unique identifier of your item in the index and will also serve as the item’s uri field value. This value is essential to update the item’s information in the index.
2 The productid is the unique identifier of your product. Depending on your catalog configuration, this metadata may have a different label.
3 The price_dict is a dictionary field that can be used in an environment where products need to have different prices (for example, when the price is based on location or seasonal pricing) for a single item, instead of sending a single price value (see Dictionary fields).

If your product’s price is static, you can store the product’s price in a single price field (for example, ec_price).

4 The ec_category metadata is used to define the category of your product. If your product belongs to multiple categories, or if you want to define a hierarchy of categories, you must define them in a single string, using the following delimiters:
  • To define multi-value categories, use ;.

  • To define a hierarchy of categories, use |.

For example, if your product belongs to multiple categories and hierarchies, you can define them as follows: "ec_category": "Shoes ; Shoes|Soccer shoes ; Shoes|Sport shoes|Soccer shoes"

5 The objecttype metadata is crucial, as it will be used to identify the item as a product in the index.

When defining your product data, we highly recommend using the standard fields for storing related data (for example, using ec-prefixed fields, such as ec_price). This will simplify the mapping process later on.

Leading practice

In your catalog content, avoid using the same field name that you intend to use as facets, on different types of items. For example, if you’re defining the color at a product level, then you shouldn’t define the color at the variant level. If you need to include a field at both levels, prefix it with product and variant (e.g, productcolor, variantcolor) so that they’re different in the index.