Catalog object types

A Coveo product catalog can contain three different types of catalog object: product, variant, and availability. Each item you add to a Catalog source must be categorized as of one of these three catalog objects.



The product object represents individual searchable products in your inventory.


You have a product named "Coveo Soccer Shoes - Red."

This product would be classified as a product and would include product details such as its price, brand, and description.

To learn how to configure your product data for indexing, see Catalog product data.


In a catalog featuring product variants, customers are presented with a range of displayable products. However, when making a purchase, they can select a specific variation of that product. A variant can be seen as the sellable version of a product.


An online shoe store offers a product called Coveo Soccer Shoes - Red. These shoes are available in various sizes (6, 7, 8). Search results or PLPs showcase the Coveo Soccer Shoes - Red shoes, displaying the overall design and features, but if a user decides to make a purchase, they would need to specify the exact size they want, such as size US 7, making the US-7 variant a sellable version of the Coveo Soccer Shoes - Red product.

Therefore, each size of the Coveo Soccer Shoes - Red product is considered a sellable variant of that product.

Note that you might have situations where you’ll want to leverage product grouping to group items of the product catalog object together to handle product variations. This would often be the case for displayable variations of a product (for example, a product available in different colors).

For more information about the difference between the variant catalog object and product grouping, see Catalog variant data and product groupings. This article also explains how to configure your variant data for indexing.


If your product offering differs depending on store availability, price lists, or anything that controls which user has access to certain products or variants, you can use the availability object. For example, you would likely classify an item under availability for each of your stores (for example, New-York, Chicago, Boston, etc) if you have many local stores which all have different inventories.

To learn how to configure availability data for indexing, see Catalog availability data.

What’s next?

Once you’ve configured your product, variant, and availability data and structured it in a JSON file, you can proceed to streaming your catalog data to your source.