---
title: "Catalog Locale Manager for Salesforce Commerce Cloud"
slug: "catalog-locale-manager-for-salesforce-commerce-cloud"
tags: ["product import", "integration", "catalog", "platform", "SFCC", "inventory", "api", "data import"]
updated: 2025-09-08T16:15:44Z
published: 2025-09-08T16:15:44Z
canonical: "docs.newstore.com/catalog-locale-manager-for-salesforce-commerce-cloud"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.newstore.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Catalog Locale Manager for Salesforce Commerce Cloud

You can use the Catalog Locale Manager to import a singe multi-locale SFCC Catalog XML file into NewStore, by specifying the locales that are to be imported into the platform for each SFCC catalog.

Use the [SFCC catalog locale manager](https://docs.newstore.net/api/integration/catalog-sfcc/sfcc-catalog-locale-manager_api) API to create, retrieve, and delete the locale configurations.

The examples in this section help you to set up the multi-locale catalog configuration for your business. See [Setting up the catalog locale configuration](/v1/docs/catalog-locale-manager-for-salesforce-commerce-cloud#setting-up-the-catalog-locale-configuration).

## Locale configuration example

This example configuration transforms the `xyz-navigation-emea-newstore` SFCC Catalog XML file into 8 different locale-specific NewStore catalogs.

```json
{
  "catalog_name": "xyz-navigation-emea-newstore",
  "import_configuration": [
      {
          "is_master": true,
          "newstore_catalog_id": "storefront-retail-emea-de-ch",
          "master_catalog": "xyz-navigation-emea-newstore",
          "default_locale": "x-default",
          "locale": "de-CH"
      },
      {
          "is_master": true,
          "newstore_catalog_id": "storefront-retail-emea-de-de",
          "master_catalog": "xyz-navigation-emea-newstore",
          "default_locale": "x-default",
          "locale": "de-DE"
      },
      {
          "is_master": true,
          "newstore_catalog_id": "storefront-retail-emea-en-us",
          "master_catalog": "xyz-navigation-emea-newstore",
          "default_locale": "x-default",
          "locale": "en-US"
      },
      {
          "is_master": true,
          "newstore_catalog_id": "storefront-retail-emea-es-es",
          "master_catalog": "xyz-navigation-emea-newstore",
          "default_locale": "x-default",
          "locale": "es-ES"
      },
      {
          "is_master": true,
          "newstore_catalog_id": "storefront-retail-emea-fr-ch",
          "master_catalog": "xyz-navigation-emea-newstore",
          "default_locale": "x-default",
          "locale": "fr-CH"
      },
      {
          "is_master": true,
          "newstore_catalog_id": "storefront-retail-emea-fr-fr",
          "master_catalog": "xyz-navigation-emea-newstore",
          "default_locale": "x-default",
          "locale": "fr-FR"
      },
      {
          "is_master": true,
          "newstore_catalog_id": "storefront-retail-emea-it-it",
          "master_catalog": "xyz-navigation-emea-newstore",
          "default_locale": "x-default",
          "locale": "it-IT"
      },
      {
          "is_master": true,
          "newstore_catalog_id": "storefront-retail-emea-pt-pt",
          "master_catalog": "xyz-navigation-emea-newstore",
          "default_locale": "x-default",
          "locale": "pt-PT"
      }
  ]
}
```

## Updating the SFCC catalog mapping configuration

The SFCC catalog export process ([SFCC catalog export job](https://docs.newstore.net/api/integration/catalog-sfcc/sfcc-integration_api#operation/JobConfigController_catalogConfig)) uses a mapping configuration, which is provided with the [SFCC catalog mapping config](https://docs.newstore.net/api/integration/catalog-sfcc/sfcc-integration_api#operation/MappingConfigController_catalogConfig) API.

You have to define placeholders for the process to work with the Catalog Locale Manager and transform multiple locales.

In the following example of a catalog export mapping configuration, placeholders are defined within the `{{ }}` parameters, and each one will be replaced with the corresponding values from your locale configuration.

```json
{
  "sfcc_catalog_id": "xyz-navigation-emea-newstore",
  "config": {
  "categories": {
      "assign_unassigned_to_root": true
  },
  "header": {
      "categories": {
          "is_master": "{{is_master}}",
          "locale": "{{locale}}",
          "shop": "{{newstore_catalog_id}}"
      },
      "products": {
          "catalog_id": "{{newstore_catalog_id}}",
          "filterable_attributes": [],
          "internal_disable_image_processing": false,
          "is_master": "{{is_master}}",
          "locale": "{{locale}}",
          "searchable_attributes": []
      }
  },
  "images": {
      "include": [
          "zoom",
          "swatch",
          "1774"
      ],
      "is_swatch_view_type": "swatch",
      "pathTemplate": "https://dummyimage.com/600x400/807b80/060a1a.png&text={{.}}",
      "placeHolder": {
          "is_color_swatch": false,
          "is_main": false,
          "url": "http://via.placeholder.com/640x360"
      }
  },
  "languagesPriority": [
      "{{locale}}",
      "{{default_locale}}",
      "x-default"
  ],
  "properties_mapping": {
      "caption": "@langTextVal(master.display-name)",
      "description": "@htmlToText(@concatSpace(@langTextVal(master.long-description))",
      "extended_attributes": [
          {
              "innerDocument": "!",
              "mappings": {
                  "name": ">>subBrand",
                  "value": "@customAttr(master.custom-attributes|>>subBrand)"
              },
              "output": [],
              "required": [
                  "value"
              ]
          },
          {
              "innerDocument": "!",
              "mappings": {
                  "name": ">>model",
                  "value": "@customAttr(master.custom-attributes|>>model)"
              },
              "output": [],
              "required": [
                  "value"
              ]
          },
          {
              "innerDocument": "!",
              "mappings": {
                  "name": ">>modelName",
                  "value": "@customAttr(master.custom-attributes|>>modelName)"
              },
              "output": [],
              "required": [
                  "value"
              ]
          }
      ],
      "external_identifiers": [],
      "images": "@variantImages(master.images|master.variations|variant.custom-attributes)",
      "is_active": "@falsyOr(@siteSpecificVal(variant.online-flag)|@siteSpecificVal(master.online-flag)|meta.variantWithoutMaster)",
      "is_published": "@boolOr(@siteSpecificVal(variant.sitemap-included-flag)|@siteSpecificVal(master.sitemap-included-flag)|@negate(meta.variantWithoutMaster))",
      "product_id": "variant.product-id",
      "shipping_weight_unit": ">>kg",
      "shipping_weight_value": "@defOrToNumber(@customAttr(variant.custom-attributes,>>GrossWeight)|@customAttr(master.custom-attributes,>>GrossWeight))",
      "show_in_listing": "@siteSpecificVal(master.searchable-flag)",
      "tax_class_id": "@defOr(@customAttr(variant.custom-attributes,>>productTaxCode)|@customAttr(master.custom-attributes,>>productTaxCode))",
      "title": "@langTextVal(master.display-name)",
      "variant_group_id": "master.product-id",
      "variation_color_value": "@customAttr(variant.custom-attributes|>>colorName)",
      "variation_size_value": "@customAttr(variant.custom-attributes|>>sizeName)"
  },
    "sitesPriority": [
      "RefArch"
    ]
  }
}
```

## Setting up the catalog locale configuration

> [!TIP]
> Note
> 
> We assume that a catalog mapping configuration already exists, which is required to enable the multi-locale feature.

1. Identify the current mapping configuration ([SFCC catalog mapping config](https://docs.newstore.net/api/integration/catalog-sfcc/sfcc-integration_api#operation/MappingConfigController_catalogConfig)) in use.

For help with retrieving your current configuration, contact the [SFCC team](https://newstoreinc.slack.com/archives/C039VP94VNH) or the [support team](https://help.newstore.com).
2. Follow the [example](/v1/docs/catalog-locale-manager-for-salesforce-commerce-cloud#updating-the-sfcc-catalog-mapping-configuration) and replace the placeholders with actual values from your local configuration.
3. Define the multi-locale catalog configuration using this

[example](/v1/docs/catalog-locale-manager-for-salesforce-commerce-cloud#locale-configuration-example). Identify the `sfcc_catalog_id` and use it as the `catalog_name`.
4. In case the.zip file provided to the pre-signed URL returned from [SFCC catalog export job](https://docs.newstore.net/api/integration/catalog-sfcc/sfcc-integration_api#operation/JobConfigController_catalogConfig) is a group of `master + storefront` catalogs, use the name of the `storefront catalog`.
5. Using the [SFCC catalog import job details](https://docs.newstore.net/api/integration/catalog-sfcc/sfcc-integration_api#operation/JobHistoryController_importJob) method, verify if multiple catalog import jobs are executed effectively by uploading only `one`.zip file to the pre-signed URL returned by the [SFCC catalog export job](https://docs.newstore.net/api/integration/catalog-sfcc/sfcc-integration_api#operation/JobConfigController_catalogConfig) method.
