Optimize Catalog sources for multi-language and multi-brand setups

There’s a 1-to-1 relationship between a Catalog source and a commerce catalog which is essential for Coveo Personalization-as-you-go (PAYG) models to generate product embeddings and vectors. See Commerce catalog for more information about commerce catalogs.

This relationship enables PAYG models to create a rich vector space representing the products contained in your commerce catalog.


A commerce catalog can contain an additional source to store items of the availability catalog object. However, the product vectors are generated using the Catalog source that contains the items of the product and variant catalog objects.

When selling products in multiple countries, there’s often a need to maintain sites in various languages. This is typically necessary when your product offerings and user behavior vary among sites due to factors such as language and location. Furthermore, you’re likely to manage different sites if your business structure includes multiple child brands under a single parent brand.


The parent company All Star Shoes has two child brands: All Things Shoes and Comfort Wear. All Things Shoes sells products in Canada and the US whereas Comfort Shoes only sells products in the US. In Canada, they support two languages: French and English. In the US, they only support English.

Therefore, to provide an optimal experience to their different audiences, each child brand has to have its own commerce catalog and ecommerce website. The following list displays the different websites that both brands created to support their multi-language and multi-brand setup:

  • All things Shoes Canada (www.allthingsshoes.ca). This website supports French (www.allthingsshoes.ca/fr) and English (www.allthingsshoes.ca/en), respectively.

  • All things Shoes US (www.allthingsshoes.us). Only supports English.

  • Comfort Wear US (www.comfortshoes.us). Only supports English.

Coveo ML models acquire knowledge from both your customers' behavior and the content in the commerce catalog, adapting their learning based on the specific data sets of the websites they’re integrated into.

For this reason, it’s recommended to have separate Catalog sources for each available language, country, and/or brand you’re supporting[1]. This is recommended because it enables the Coveo ML models associated with the Catalog source to learn independently from the data associated with each language, region, or brand. Such a setup will result in recommendations that are optimally personalized to users' preferences and search behavior on each website in your multi-catalog structure.


Coveo can index content written in 57 languages. It’s essential to review the supported features for each language.

1. Having a Catalog source for each language you’re supporting will likely lead to content duplication. This could affect your product entitlements.

It’s recommended you create one Catalog source for each language, country, brand, and/or country you’re selling your products in.

When using this strategy, you must undergo a specific configuration in your query pipeline.

To configure your query pipelines:

  1. Make sure you have a distinct query pipeline to handle queries originating from each of your websites. This means that if you have 5 websites to handle your multi-catalog configuration, you’ll need 5 query pipelines.

  2. Make sure that you implemented a query routing mechanism for each of your query pipeline. This routing should be based on a query pipeline condition that targets the website served by the pipeline.

  3. In each query pipeline, configure a filter rule that targets the proper Catalog source.


The child brands of the All Star Shoes company (All Things Shoes and Comfort Wear) each have their own website. Each website is served by a distinct search interface, which has its own search hub value.

In order for the traffic on each website to access the content contained in the right Catalog source, you created a condition in your query pipeline to route the queries to the relevant query pipeline. If the search interfaces of All Things Shoes and Comfort Wear have the following search hub names:

  • All-Things-Shoes-search-ca-fr

  • All-Things-Shoes-search-ca-en

  • All-Things-Shoes-search-us

  • Comfort-Wear-search-us

The corresponding query pipelines would have the following conditions:

  • Search Hub is All-Things-Shoes-search-ca-fr

  • Search Hub is All-Things-Shoes-search-ca-en

  • Search Hub is All-Things-Shoes-search-us

  • Search Hub is Comfort-Wear-search-us

Inside each query pipeline, you created a filter rule that targets the Catalog source that contains the products sold by the related brand. The filter rules will have the following format:

  • @source==all-things-shoes-ca-fr

  • @source==all-things-shoes-ca-en

  • @source==all-things-shoes-us

  • @source==comfort-wear-products-us

About Machine Learning models

When following the recommended configuration detailed in this article, you’ll have to create one set of Coveo ML PAYG models for each individual website.

For example, suppose you have the following websites:

  • www.allthingsshoes.ca/fr

  • www.allthingsshoes.ca/en

  • www.allthingsshoes.us

  • www.comfortshoes.us

And you want to leverage both Predictive Query Suggestions (PQS) and Intent-Aware Product Ranking (IAPR) on all these websites, you’ll need to create a total of 4 models for each feature. Therefore, you’ll have 4 PQS models and 4 IAPR models.

You’ll then be able to associate each instance of a model to the query pipeline that handles the queries originating from the website it’s dedicated to.