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

# Shopify Markets indexing

> Algolia supports Shopify Markets for international ecommerce.

export const Records = () => <Tooltip tip="A record is a searchable object in an Algolia index. Each record consists of named attributes." cta="Algolia records" href="/doc/guides/sending-and-managing-data/prepare-your-data#algolia-records">
    records
  </Tooltip>;

export const Index = () => <Tooltip tip="An Algolia index is a searchable dataset that consists of records and configuration settings. These settings define how the records are searched and ranked.">
    index
  </Tooltip>;

export const Facet = () => <Tooltip tip="An attribute in your records that lets users filter or group results (for example, by color, brand, or price)." cta="Faceting" href="/doc/guides/managing-results/refine-results/faceting">
    facet
  </Tooltip>;

export const ApplicationID = () => <Tooltip tip="A unique alphanumeric string that identifies an Algolia application." cta="Application ID (dashboard)" href="https://dashboard.algolia.com/account/api-keys">
    application ID
  </Tooltip>;

export const Application = () => <Tooltip tip="An Algolia application is a self-contained environment with its own indices, configuration, and API keys. Applications don't share data or settings with each other.">
    application
  </Tooltip>;

<Info>
  Shopify apps can't modify theme code directly.
  To integrate Autocomplete and InstantSearch,
  use the Algolia AI Search & Discovery app's **App Embed** and **App Blocks**.

  For more information, see:

  * [Manual theme configuration](/doc/integration/shopify/getting-started/quick-start#manual-theme-configuration)
  * [Shopify Algolia configuration](/doc/integration/shopify/sending-and-managing-data/algolia-config)
</Info>

[Shopify Markets](https://shopify.dev/docs/apps/build/markets) helps merchants sell around the world with multiple languages,
international pricing, or market-specific domains.

The Algolia AI Search & Discovery app creates one <Index /> for each market and language.
This lets you tailor ranking settings for each language and is compatible with existing Algolia features.

## Before you begin: update Shopify theme assets

<Warning>
  Before updating your existing theme, make a backup.
  Updating will reset any customization you've made to your Algolia theme assets.
</Warning>

To support Shopify Markets indexing, update your Algolia theme assets to the latest version.

1. In your Shopify admin, go to the Algolia AI Search & Discovery app.
2. On the **Search options** tab, click **Enable on new theme** and either install the theme assets to your existing theme,
   or install a new theme.

   <img src="https://mintcdn.com/algolia/TTlnKswkCK2YkCpC/doc/integration/shopify/sending-and-managing-data/1a-markets-enable-assets.jpeg?fit=max&auto=format&n=TTlnKswkCK2YkCpC&q=85&s=fbeff39fe39a58ecd7290d32a4589357" alt="Screenshot of a dialog box titled 'Enable Algolia on a theme' with a drop-down menu showing 'Dawn' and a 'Next' button." width="1223" height="578" data-path="doc/integration/shopify/sending-and-managing-data/1a-markets-enable-assets.jpeg" />

## Enable markets indexing

1. To enable markets settings on your store's Algolia <Application />,
   contact the [Algolia support team](https://support.algolia.com/hc/en-us/requests/new)
   and provide them with your Shopify domain and Algolia <ApplicationID />.

2. After activation, go to the **Indexing** tab in the Algolia AI Search & Discovery app.

3. Select **Enable Markets Indexing**.

   <img src="https://mintcdn.com/algolia/TTlnKswkCK2YkCpC/doc/integration/shopify/sending-and-managing-data/1-markets-enable-toggle.jpeg?fit=max&auto=format&n=TTlnKswkCK2YkCpC&q=85&s=91a1c7045227c5ba327746c3e63e26a6" alt="Screenshot of a checkbox labeled 'Enable markets indexing (BETA)' under the 'MARKETS' section in the Shopify Markets indexing settings." width="1962" height="372" data-path="doc/integration/shopify/sending-and-managing-data/1-markets-enable-toggle.jpeg" />

   A list shows your store's active Shopify Markets and their available languages.

   <Note>
     Some active markets may disappear from the **Shopify Markets** settings if no language is explicitly selected—
     languages are no longer inherited from your store settings.

     If you save your configuration while these markets are hidden,
     **Algolia stops indexing them**, interpreting them as removed.

     To prevent data loss:

     * In the **Shopify admin**, explicitly select at least one language for each market you want to index.
     * Ensure the market is visible in the **Markets indexing settings** of the Algolia Shopify app.
   </Note>

4. For each market and language combination you want to index,
   check the option in the **Sync to Algolia** column.

   <img src="https://mintcdn.com/algolia/TTlnKswkCK2YkCpC/doc/integration/shopify/sending-and-managing-data/2-markets-indexing-enabled.jpeg?fit=max&auto=format&n=TTlnKswkCK2YkCpC&q=85&s=797cc3ca1fddb2edfacae925fc67a980" alt="Screenshot of 'Markets Indexing' settings with a table of market/language combinations and sync checkboxes, some enabled." width="1075" height="938" data-path="doc/integration/shopify/sending-and-managing-data/2-markets-indexing-enabled.jpeg" />

   <Tip>
     Each selected market and language combination creates a new index.
     Only select the combinations you need,
     since the processing time and number of <Records /> increases with each new index.
   </Tip>

5. Click **Save**.

### Reindexing

First, Algolia prepares for real-time indexing in the background.
This might take up to one minute.

Next, Algolia reindexes your products and collections with new indices, replicas,
and extra metafields for each record, such as, multiple currencies.

<img src="https://mintcdn.com/algolia/TTlnKswkCK2YkCpC/doc/integration/shopify/sending-and-managing-data/3-markets-algolia-dashboard-indices.jpeg?fit=max&auto=format&n=TTlnKswkCK2YkCpC&q=85&s=6a18453a603610c9c676df446ec5ccc1" alt="Algolia dashboard index list after markets indexing is enabled" width="1213" height="852" data-path="doc/integration/shopify/sending-and-managing-data/3-markets-algolia-dashboard-indices.jpeg" />

After the initial re-indexing,
real-time indexing keeps your products up-to-date with changes from each market.

### Configure your Shopify storefront

Update your search experience to support translation.

#### Autocomplete dynamic selector helper

1. In the **Search options** tab, go to the **Search basics** section.
2. In the **Autocomplete** section, click **Customize**.
3. Select **Use default dynamic selector**.
   This helps the Algolia autocomplete menu to connect to the correct search form URL when users change to a different language or market in your store.

<img src="https://mintcdn.com/algolia/TTlnKswkCK2YkCpC/doc/integration/shopify/sending-and-managing-data/6-markets-dynamic-selector-helper.jpeg?fit=max&auto=format&n=TTlnKswkCK2YkCpC&q=85&s=7f91299fd47c7eaf51265dbaa4494c74" alt="Dynamic selector helper checkbox for multi-language support with autocomplete widget" width="917" height="406" data-path="doc/integration/shopify/sending-and-managing-data/6-markets-dynamic-selector-helper.jpeg" />

#### Widget text translations

You can translate text from your Shopify templates with Shopify's [Translate and Adapt](https://apps.shopify.com/translate-and-adapt) app.
The translatable text from Algolia includes labels, placeholders, and helper text.

To edit the translations:

1. Open the Translate and Adapt app.

2. Select **Store metadata**.

   <img src="https://mintcdn.com/algolia/TTlnKswkCK2YkCpC/doc/integration/shopify/sending-and-managing-data/4-markets-algolia-metafields.jpeg?fit=max&auto=format&n=TTlnKswkCK2YkCpC&q=85&s=aac4566736334ef0c39f01fc8e398a48" alt="Screenshot of the 'Translate and Adapt' interface with a red arrow pointing to 'Store metadata' under 'Localized content: Spanish'." width="992" height="782" data-path="doc/integration/shopify/sending-and-managing-data/4-markets-algolia-metafields.jpeg" />

3. Add your translation to these metafields:

   * `algolia_search.translations`: translations for labels and placeholder text
   * `algolia_search.instantsearch_facets`: translations for <Facet /> filters
   * `algolia_search.instantsearch_sort_orders`: translations for different sort orders

   <img src="https://mintcdn.com/algolia/TTlnKswkCK2YkCpC/doc/integration/shopify/sending-and-managing-data/5-markets-algolia-metafields-translations.jpeg?fit=max&auto=format&n=TTlnKswkCK2YkCpC&q=85&s=31177f19daf1874ea382387f3ecf8b88" alt="UI of JSON fields to translate Algolia widget text for markets support" width="1289" height="934" data-path="doc/integration/shopify/sending-and-managing-data/5-markets-algolia-metafields-translations.jpeg" />

## Schema

If you added translations for product attributes in Shopify, they're added to each record.
Otherwise, the record defaults to your store's primary language.

The currency for each record defaults to your store's primary currency.
Additional currencies are added as separate objects, such as, `market_pricing_eur`.

Setting attributes as unretrievable affects Markets indexing.
For more information,
see [Retrievable attributes](/doc/integration/shopify/sending-and-managing-data/schemas#retrievable-attributes).

The following example shows the changed fields of a record after enabling Markets indexing:

```jsonc JSON icon=braces theme={"system"}
{
  // ...variant record data
  "title": "Product Title", // Translation applied || default title
  "variant_title": "option1 / option2 / option 3", // Translation applied || default variant title
  "description": "Product description", // Translation applied || default description
  "handle": "product-handle", // Translation applied || default handle
  "price": 100, // Price in primary currency
  "compare_at_price": 150, // Price in primary currency
  "variant_min_price": 100, // Price in primary currency
  "variant_max_price": 150, // Price in primary currency
  "variant_min_compare_at_price": 150, // Price in primary currency
  "variant_max_compare_at_price": 200, // Price in primary currency
  "market_pricing_eur": {
    "price": 90, // Price in EUR
    "compare_at_price": 135, // Price in EUR
    "variant_min_price": 90, // Price in EUR
    "variant_max_price": 135, // Price in EUR
    "variant_min_compare_at_price": 135, // Price in EUR
    "variant_max_compare_at_price": 180 // Price in EUR
  },
  "market_pricing_gbp": {
    "price": 80, // Price in GBP
    "compare_at_price": 120, // Price in GBP
    "variant_min_price": 80, // Price in GBP
    "variant_max_price": 120, // Price in GBP
    "variant_min_compare_at_price": 120, // Price in GBP
    "variant_max_compare_at_price": 160 // Price in GBP
  }
}
```
