---
title: Set up storefronts and properties
slug: q2490232
canonical_url: https://docs.coveo.com/en/q2490232/
collection: coveo-for-commerce
source_format: adoc
---
# Set up storefronts and properties

To track commerce events, use the Commerce API, and manage [product discovery solutions](https://docs.coveo.com/en/o9cf0524.md) through the [Coveo Merchandising Hub (CMH)](https://docs.coveo.com/en/o5290573.md), you must map your [storefront](https://docs.coveo.com/en/p33g0410.md) architecture to the [Coveo Platform](https://docs.coveo.com/en/186.md).
This involves planning your [tracking IDs](https://docs.coveo.com/en/o8rb0139.md), configuring [properties](https://docs.coveo.com/en/p4ue0547.md), and defining [locales](https://docs.coveo.com/en/p4tf0351.md) for each of your [storefronts](https://docs.coveo.com/en/p33g0410.md).

## Storefronts in Coveo

A [storefront](https://docs.coveo.com/en/p33g0410.md) is the customer-facing part of an online store where visitors browse and purchase products.
It represents a single transactional website, encompassing the home page, search, [product listing pages (PLPs)](https://docs.coveo.com/en/m1sf3187.md), [product detail page](https://docs.coveo.com/en/n8ad7392.md), cart, and checkout process.
If your merchandising actions, cart, or checkout processes must differ, you should use separate storefronts, each with its own tracking ID and property.

In the [Coveo Platform](https://docs.coveo.com/en/186.md), each [storefront](https://docs.coveo.com/en/p33g0410.md) is identified by a unique [tracking ID](https://docs.coveo.com/en/o8rb0139.md) that's registered as a [property](https://docs.coveo.com/en/p4ue0547.md).
A [storefront](https://docs.coveo.com/en/p33g0410.md) can support multiple languages, countries, and currencies, each of which is represented by a [locale](https://docs.coveo.com/en/p4tf0351.md).

Setting up your [storefronts](https://docs.coveo.com/en/p33g0410.md) in Coveo means mapping your [storefront](https://docs.coveo.com/en/p33g0410.md) architecture to three key concepts:

* **Tracking IDs**: Unique identifiers that distinguish your [storefronts](https://docs.coveo.com/en/p33g0410.md) in [Coveo Analytics events](https://docs.coveo.com/en/260.md) and drive per-storefront [product discovery solutions](https://docs.coveo.com/en/o9cf0524.md) management in the [Coveo Merchandising Hub (CMH)](https://docs.coveo.com/en/o5290573.md).

* **Properties**: Human-readable representations of [tracking IDs](https://docs.coveo.com/en/o8rb0139.md) that you register in your [Coveo organization](https://docs.coveo.com/en/185.md).

* **Locales**: Language, country, and currency combinations that your [storefronts](https://docs.coveo.com/en/p33g0410.md) support.

For guidance on when to create separate [properties](https://docs.coveo.com/en/p4ue0547.md) versus using [locales](https://docs.coveo.com/en/p4tf0351.md) within a single [property](https://docs.coveo.com/en/p4ue0547.md), see [Determine your property and locale structure](#determine-your-property-and-locale-structure).

The following diagram shows how the Barca brand's [storefront](https://docs.coveo.com/en/p33g0410.md) architecture could be set up in Coveo for Commerce, considering the following variations:

* Two [storefronts](https://docs.coveo.com/en/p33g0410.md): **Canada storefront** and **US storefront**

* Two supported currencies: `CAD` and `USD`

* Supported languages for each [storefront](https://docs.coveo.com/en/p33g0410.md):

** **Canada storefront**: English and French

** **US storefront**: English and Spanish

![Storefront architecture for Canada and US with CAD](https://docs.coveo.com/en/assets/images/coveo-for-commerce/images/storefront-setup.png)

The following sections cover each of these concepts in detail:

* [Tracking IDs](#tracking-ids)

* [Properties](#properties)

* [Locales](#locales)

## Tracking IDs

A [Coveo organization](https://docs.coveo.com/en/185.md) can serve many Coveo-powered commerce sites or applications, but all [Coveo Analytics events](https://docs.coveo.com/en/260.md) in a user's journey should be tied together with a single tracking ID for accurate data analytics and consistency.

[tracking IDs](https://docs.coveo.com/en/o8rb0139.md) segregate the data gathered from each of these sites or applications to ensure personalized and relevant output from your [Coveo Machine Learning (Coveo ML)](https://docs.coveo.com/en/188.md) [models](https://docs.coveo.com/en/1012.md), usable [reporting](https://docs.coveo.com/en/266.md), and clear merchandising actions.

Each tracking ID points to a specific ecommerce [storefront](https://docs.coveo.com/en/p33g0410.md), creating a way to distinguish between distinct sites and their respective user journeys.

The tracking ID is defined when sending events to the [Coveo Platform](https://docs.coveo.com/en/186.md).
In interfaces built with the Coveo [Headless library](https://docs.coveo.com/en/lcdf0493.md) or [Atomic library](https://docs.coveo.com/en/lcdf0264.md), you define it when [initializing the commerce engine](https://docs.coveo.com/en/p9499444.md#initialize-the-headless-commerce-engine).
Events sent from these interfaces then automatically include the tracking ID.
You choose the value, but it must be unique for each [storefront](https://docs.coveo.com/en/p33g0410.md) and can only contain lowercase letters, numbers, underscores (`_`), hyphens (`-`), and periods (`.`).
For example, the following tracking IDs would be valid:

* `barca_sports1_us`

* `barca-sports1-us`

* `barca.sports1.us`

While tracking ID values are specified when sending [Coveo Analytics events](https://docs.coveo.com/en/260.md), each value that's sent must be registered using a [**Property**](https://docs.coveo.com/en/o7vh0012.md) in your [Coveo organization](https://docs.coveo.com/en/185.md).
See [Properties](#properties) for more information.

**Example**

Your [Coveo organization](https://docs.coveo.com/en/185.md) powers two brands: **Barca sports** and **Barca parts**.
You operate in two different countries: **U.S.** and **Canada**.
You decide to have a different site for each brand in each country.

Therefore, you have four different sites that require their own unique tracking ID to be sent with each event:

* `barca_sports_us`
* `barca_sports_ca`
* `barca_parts_us`
* `barca_parts_ca`

Each of these tracking IDs is registered using a property in your [Coveo organization](https://docs.coveo.com/en/185.md) to ensure that the data is correctly sent:

* **Barca Sports US**

* **Barca Sports CA**

* **Barca Parts US**

* **Barca Parts CA**
## Properties

[Coveo Analytics](https://docs.coveo.com/en/182.md) [properties](https://docs.coveo.com/en/p4ue0547.md) are [tracking IDs](https://docs.coveo.com/en/o8rb0139.md) managed within a [Coveo organization](https://docs.coveo.com/en/185.md).
Each [property](https://docs.coveo.com/en/p4ue0547.md) consists of a user-readable display name, enabling simplified management and analysis of data across various sites or applications.
[properties](https://docs.coveo.com/en/p4ue0547.md) help you better organize and interpret usage data for specific contexts.

Each of your [storefronts](https://docs.coveo.com/en/p33g0410.md) must have its own [property](https://docs.coveo.com/en/p4ue0547.md) so you can manage the [tracking ID](https://docs.coveo.com/en/o8rb0139.md) associated with it.

More precisely, you must use [properties](https://docs.coveo.com/en/p4ue0547.md) to:

* Register new and existing [tracking IDs](https://docs.coveo.com/en/o8rb0139.md).

* Create relevant display names for [tracking IDs](https://docs.coveo.com/en/o8rb0139.md).
This is useful when you have multiple [tracking IDs](https://docs.coveo.com/en/o8rb0139.md) and you want to easily identify them when analyzing data.

* Deregister and delete [tracking IDs](https://docs.coveo.com/en/o8rb0139.md).
**Example**

Your [Coveo organization](https://docs.coveo.com/en/185.md) powers two brands that each have their own [storefronts](https://docs.coveo.com/en/p33g0410.md): **Barca sports US** and **Barca sports Canada**.

[Coveo Analytics events](https://docs.coveo.com/en/260.md) that are logged from these [storefronts](https://docs.coveo.com/en/p33g0410.md) are sent with the following [tracking IDs](https://docs.coveo.com/en/o8rb0139.md):

* `barca_sports_us`

* `barca_sports_ca`

To allow for accurate data tracking and analysis, you create two [properties](https://docs.coveo.com/en/p4ue0547.md) to register these [tracking IDs](https://docs.coveo.com/en/o8rb0139.md):

* **Barca Sports US**

* **Barca Sports CA**
For detailed instructions on adding, editing, and deleting [properties](https://docs.coveo.com/en/p4ue0547.md), see [Properties](https://docs.coveo.com/en/o7vh0012.md).

## Locales

A given [storefront](https://docs.coveo.com/en/p33g0410.md) can support many languages, countries, or currencies, resulting in variations in product attributes like names, descriptions, and prices.

The [Coveo Platform](https://docs.coveo.com/en/186.md) addresses this complexity by using [locales](https://docs.coveo.com/en/p4tf0351.md) to distinguish unique combinations of language, country, and currency.

[locales](https://docs.coveo.com/en/p4tf0351.md) allow for reporting according to the language, country, and currency of the user's experience.
You can also use them to manage [product discovery solutions](https://docs.coveo.com/en/o9cf0524.md) for each language, country, and currency permutation within the [Coveo Merchandising Hub (CMH)](https://docs.coveo.com/en/o5290573.md).

### How to determine your locales

A [locale](https://docs.coveo.com/en/p4tf0351.md) value follows the format `language-country-currency` (for example, `en-US-USD`).

> **Notes**
>
> * A [storefront](https://docs.coveo.com/en/p33g0410.md) can have multiple [locales](https://docs.coveo.com/en/p4tf0351.md) associated with it.
> 
> * [locales](https://docs.coveo.com/en/p4tf0351.md) are [storefront](https://docs.coveo.com/en/p33g0410.md) parameters, not [visitor](https://docs.coveo.com/en/nbub9475.md) browser parameters.
> For example, if a [visitor](https://docs.coveo.com/en/nbub9475.md)'s browser default language is set to German, and they're browsing an English site, the [locale](https://docs.coveo.com/en/p4tf0351.md) language is `en`.
>  
> Similarly, a visitor located in Germany browsing a US-based [storefront](https://docs.coveo.com/en/p33g0410.md) that sells products in American dollars would have their [locale](https://docs.coveo.com/en/p4tf0351.md) tracked with the country set to `US` and the currency set to `USD`.
> This occurs even though they're physically located in a country that uses a different currency.
[locales](https://docs.coveo.com/en/p4tf0351.md) are defined for every supported combination of language, country, and currency that your [storefronts](https://docs.coveo.com/en/p33g0410.md) support.
**Example**

Your organization powers two brands: **Barca sports** and **Barca parts**.

You operate in two different countries: **U.S.** and **Canada**.
In the U.S., you only support English, and in Canada, you support both English and French.

Therefore, you have three different [locales](https://docs.coveo.com/en/p4tf0351.md):

* `en-US-USD`

* `en-CA-CAD`

* `fr-CA-CAD`
Similar to [tracking IDs](https://docs.coveo.com/en/o8rb0139.md), you define locales when sending events to the [Coveo Platform](https://docs.coveo.com/en/186.md).
In interfaces built with the Coveo [Headless library](https://docs.coveo.com/en/lcdf0493.md) or [Atomic library](https://docs.coveo.com/en/lcdf0264.md), you define them when [initializing the commerce engine](https://docs.coveo.com/en/p9499444.md#initialize-the-headless-commerce-engine) by setting the values of the `currency`, `country`, and `language` parameters.
Events sent from these interfaces then automatically include the [locale](https://docs.coveo.com/en/p4tf0351.md).

## Determine your property and locale structure

Choosing the right structure depends on how much your [storefront](https://docs.coveo.com/en/p33g0410.md) experiences differ in terms of products and logic.

### Create a separate property when

Storefronts require their own product set or high-level logic, such as:

* **Unique product sets**: The available products aren't identical between [storefronts](https://docs.coveo.com/en/p33g0410.md) (for example, different brands or inventory sets).

* **Different cart experiences**: Switching between [storefronts](https://docs.coveo.com/en/p33g0410.md) affects the customer's cart (for example, items added on one site don't carry over to another).

* **Environment differences**: The shopping experience differs significantly by region, brand, or device type (for example, app vs. web).

* **Distinct discovery configurations**: You need different setups between [storefronts](https://docs.coveo.com/en/p33g0410.md) for search results, listing pages, or product recommendations.

### Use locales within a property when

Your [storefronts](https://docs.coveo.com/en/p33g0410.md) share the same product set and high-level configuration.
[locales](https://docs.coveo.com/en/p4tf0351.md) are ideal for managing differences strictly limited to language, country, or currency without duplicating product discovery logic.

## What's next?

Once you've planned your [tracking IDs](https://docs.coveo.com/en/o8rb0139.md), registered your [properties](https://docs.coveo.com/en/p4ue0547.md), and identified your [locales](https://docs.coveo.com/en/p4tf0351.md), you're ready to:

. [Index and manage catalog data](https://docs.coveo.com/en/3448.md): Create [Catalog sources](https://docs.coveo.com/en/l5if0244.md) and [catalog entities](https://docs.coveo.com/en/3143.md) to organize your product data according to your storefronts and locales.

. [Create storefront associations](https://docs.coveo.com/en/o48e0216.md): Once your [catalog entities](https://docs.coveo.com/en/3143.md) are in place, connect your [properties](https://docs.coveo.com/en/p4ue0547.md) and [locales](https://docs.coveo.com/en/p4tf0351.md) to the appropriate [catalog entities](https://docs.coveo.com/en/3143.md).