--- title: Add a Catalog source slug: n8of0593 canonical_url: https://docs.coveo.com/en/n8of0593/ collection: coveo-for-commerce source_format: adoc --- # Add a Catalog source To start [indexing](https://docs.coveo.com/en/204/) your content, create a [Catalog source](https://docs.coveo.com/en/l5if0244/) that will hold your [catalog data](https://docs.coveo.com/en/obcf0333/) in the Coveo [index](https://docs.coveo.com/en/204/). A [Catalog source](https://docs.coveo.com/en/l5if0244/) contains [items](https://docs.coveo.com/en/pa8f6515/) that are designed to be sold. It can also contain [variants](https://docs.coveo.com/en/mc7f0326/), [availability channels](https://docs.coveo.com/en/mc7e9096/), or entitlement information. > **Notes** > > * Coveo offers [indexing](https://docs.coveo.com/en/204/) solutions for content in [SAP Commerce Cloud](https://docs.coveo.com/en/ladf0001/) and [Salesforce Commerce Cloud](https://docs.coveo.com/en/sal3s100/). > > It's also possible to index commerce-specific content using a Catalog source. > However, additional setup is required. > Contact your Customer Success Manager to discuss your options. > > * {empty} > > The [resource snapshots](https://docs.coveo.com/en/3239/) feature lets you copy configurations from one Coveo for Commerce [organization](https://docs.coveo.com/en/185/) to another, such as when you migrate from a sandbox to a production organization. > It only copies the source configuration, not the source content. > > Use this feature to reuse your [catalog entities](https://docs.coveo.com/en/3143/) and their [catalog configurations](https://docs.coveo.com/en/l5if0520/), your [Catalog sources](https://docs.coveo.com/en/l5if0244/), and your [fields](https://docs.coveo.com/en/200/) and field [mappings](https://docs.coveo.com/en/217/). ## Recommended setup Create separate product [sources](https://docs.coveo.com/en/246/) for each [locale](https://docs.coveo.com/en/p4tf0351/) you support,[.footnote]^[[{counter:footnote-number-counter}](#language-footnote1)]^ so [Coveo ML](https://docs.coveo.com/en/188/) [models](https://docs.coveo.com/en/1012/) can learn independently from each experience. This results in recommendations that are optimally personalized to users' preferences and search behavior on each website in your multi-catalog structure. **Example** The company **Barca** sells products in Canada and the US. In Canada, they support French and English. In the US, they support English and Spanish. They have the following [storefronts](https://docs.coveo.com/en/p33g0410/): * Barca Canada (`www.sports.barca.group/ca/`). This storefront supports French (`www.sports.barca.group/ca/fr/`) and English (`www.sports.barca.group/ca/en/`). * Barca US (`www.sports.barca.group/us/`). This storefront supports English (`www.sports.barca.group/us/en/`) and Spanish (`www.sports.barca.group/us/es/`). This setup requires the creation of four product sources: * One for the English variation of the Canadian storefront. * One for the French variation of the Canadian storefront. * One for the English variation of the US storefront. * One for the Spanish variation of the US storefront. > **Note** > > Some setups require an additional source to index items of the [availability](https://docs.coveo.com/en/mc7e9096/) catalog object. > See [Source configuration approaches for availability channel](https://docs.coveo.com/en/nbga0384/) for details. -- {counter:footnote-number-counter}. Having a separate source for each [locale](https://docs.coveo.com/en/p4tf0351/) you're supporting will likely lead to content duplication. This could affect your [product entitlements](https://docs.coveo.com/en/l2590456#commerce-solutions). -- ## Add a Catalog source Follow the instructions below to add a Catalog source. . On the [**Sources**](https://platform.cloud.coveo.com/admin/#/orgid/content/sources/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/content/sources/)) page, click **Add source**. . In the **Add a source of content** panel, click the **Catalog** source tile. . Configure your source. > **Leading practice** > > It's best to create or edit your source in your sandbox organization first. > Once you've confirmed that it indexes the desired content, you can copy your source configuration to your production organization, either [with a snapshot](https://docs.coveo.com/en/3239/) or manually. > > See [About non-production organizations](https://docs.coveo.com/en/2959/) for more information and best practices regarding sandbox organizations. ### "Configuration" tab In the **Add a Catalog Source** panel, the **Configuration** tab is selected by default. It contains your source's general and authentication information, as well as other parameters. #### General information ##### Source name Enter a name for your source. > **Leading practice** > > A source name can't be modified once it's saved, therefore be sure to use a short and descriptive name, using letters, numbers, hyphens (`-`), and underscores (`_`). Avoid spaces and other special characters. When coding a crawler to push content in this source, a developer will need this name to [get the corresponding `sourceId`](https://docs.coveo.com/en/3390#copy-a-source-name-or-id) from the [**Sources**](https://platform.cloud.coveo.com/admin/#/orgid/content/sources/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/content/sources/)) page. ##### Stream API URL Available only when accessing an existing Catalog source, the input contains the URL you must use to [push your catalog data in your source](https://docs.coveo.com/en/p48b0322/). The URL has the following form: `+https://api.cloud.coveo.com/push/v1/organizations//sources//stream/open+` The URL that you can **Copy to clipboard** contains your `` and ``, which are required parameters to stream your [catalog data](https://docs.coveo.com/en/obcf0333/) in your source. See the **Stream** section in [Push API](https://platform.cloud.coveo.com/docs?api=PushAPI#/) to test API calls. ##### API key An API key with adequate privileges is required to [push and update](https://docs.coveo.com/en/p48b0322/) your [catalog data](https://docs.coveo.com/en/obcf0333/). A user with **Edit** access on the [**API keys** domain](https://docs.coveo.com/en/1707#api-keys-domain) can create a Catalog source API key in the following ways: * When creating the Catalog source by selecting the **Create an API key** checkbox. ** Once the source is saved, the **API key successfully created** dialog appears and lets you view and copy the value of the API key. This dialog appears only once. If the key's value isn't retained, a new API key can be created in one of the other ways listed in this section. ![API key checkbox in source configuration panel | Coveo](https://docs.coveo.com/en/assets/images/coveo-for-commerce/images/source-api-key.png) > **Note** > > If the Catalog source you're creating has the **Same users and groups as in your current permission system** [**Content security**](#content-security-tab) option selected, an error occurs if the following conditions are met: > > * The **Create an API key** checkbox is selected. > > * You don't have the necessary content security-related privileges. * By selecting a specific source on the [**Sources**](https://platform.cloud.coveo.com/admin/#/orgid/content/sources/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/content/sources/)) page, and then selecting **Create API key** from the Action bar. This method also ensures that the key has the proper privileges required to push content to the source. ![Creating a Push source API key | Coveo](https://docs.coveo.com/en/assets/images/index-content/create-api-key.gif) * From the [**API Keys**](https://platform.cloud.coveo.com/admin/#/orgid/organization/api-access/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/organization/api-access/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/organization/api-access/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/organization/api-access/)) page. You can create a new key for the source or assign an existing API key to it. When using this method, make sure that the proper privileges are given to the key. See the following table for the required privilege set depending on the **Content Security** option selected for the source. [%header,cols="2,1,1"] |=== |Granted API key privileges |**Everyone** content security |**Same users and groups as in your current permission system** content security |Content > Push items to sources > Custom (Allow on target source) ^|[check] ^|[check] |Content > Sources > View all ^|[check] ^|[check] |Organization > Organization > View ^|[check] ^|[check] |Content > Push identities to security providers > Allow for all providers | ^|[check] |Content > Security identity providers > View | ^|[check] |=== > **Leading practice** > > [Deactivate](https://docs.coveo.com/en/1718#deactivate-an-api-key) or [delete](https://docs.coveo.com/en/1718#delete-an-api-key) all unused API keys assigned to your source. ##### Project Use the **Project** selector to associate your source with one or more Coveo [projects](https://docs.coveo.com/en/n7ef0517/). ### "Content Security" tab Select who will be able to access the source items through a Coveo-powered [search interface](https://docs.coveo.com/en/2741/). For details on the content security options, see [Content security](https://docs.coveo.com/en/1779/). > **Note** > > If you make your source secure by selecting the **Same users and groups as in your current permission system** content security option, your crawler process must push item permissions along with the content. > For more information, see [Manage security identities in a security identity provider](https://docs.coveo.com/en/132/) and [Manage items and permissions in a Push source](https://docs.coveo.com/en/70/). ### "Access" tab . On the **Access** tab, specify whether each group (and API key, if applicable) in your [Coveo organization](https://docs.coveo.com/en/185/) can view or edit the current source. For example, when creating a new source, you could decide that members of Group A can edit its configuration, while Group B can only view it. For more information, see [Custom access level](https://docs.coveo.com/en/3151#custom-access-level). On the **Access** tab, specify whether each group (and API key, if applicable) in your [Coveo organization](https://docs.coveo.com/en/185/) can view or edit the current source. For example, when creating a new source, you could decide that members of Group A can edit its configuration, while Group B can only view it. For more information, see [Custom access level](https://docs.coveo.com/en/3151#custom-access-level). ## Required privileges You can assign privileges to allow access to specific tools in the [Coveo Administration Console](https://docs.coveo.com/en/183/). The following table indicates the privileges required to view or edit elements of the [**Sources**](https://platform.cloud.coveo.com/admin/#/orgid/content/sources/) ([platform-ca](https://platform-ca.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-eu](https://platform-eu.cloud.coveo.com/admin/#/orgid/content/sources/) | [platform-au](https://platform-au.cloud.coveo.com/admin/#/orgid/content/sources/)) page and associated panels. See [Manage privileges](https://docs.coveo.com/en/3151/) and [Privilege reference](https://docs.coveo.com/en/1707/) for more information. > **Note** > > The **Edit all** privilege isn't required to create sources. > When granting privileges for the [Sources](https://docs.coveo.com/en/1707#sources-domain) domain, you can grant a group or API key the **View all** or [**Custom**](https://docs.coveo.com/en/3151#custom-access-level) access level, instead of **Edit all**, and then select the **Can Create** checkbox to allow users to create sources. > See [Can Create ability dependence](https://docs.coveo.com/en/3151#can-create-ability-dependence) for more information. ## What's next? Now that you've created your Catalog source, make sure that your [Coveo organization](https://docs.coveo.com/en/185/) contains [all the required fields](https://docs.coveo.com/en/n73f0502/).