Skip to content

Multilingual stores ​

For stores running several languages, typically through Shopify Markets. On a Japanese-only store, none of this applies.

Supported languages ​

Eleven languages have analysis support.

Japanese  English  French  Spanish  Italian  Portuguese
German  Dutch  Polish  Czech  Turkish

Analysis differs by language: Japanese uses morphological analysis, and the Latin-script languages get handling for inflection (plurals, conjugation).

An unsupported language cannot be searched. Those stores fall back to Shopify's own search automatically (degraded_reason: "analyzer_mismatch").

Selecting the language ​

The locale parameter picks the analyser.

GET /apps/marutto-search/search?type=search&contract=v1&q=dress&locale=en

Omitted, the store's default language is used.

Send the language of the page the shopper is on. Running the Japanese analyser over an English page splits words wrongly and costs accuracy. In a Shopify theme it is available as {{ request.locale.iso_code }}.

js
params.set("locale", window.Shopify?.locale ?? "ja");

Searching translated text ​

Titles and descriptions entered through Shopify's translation feature are indexed separately per language. An English query matches the English title; a Japanese query matches the Japanese one.

How translations stay in sync ​

Shopify has no webhook for translations. Editing a product's translation does not fire products/update.

Marutto Search therefore reconciles translations periodically. Unlike a product change (seconds), a translation change takes time to reach search results.

After bulk-updating translations, run a sync from the admin before checking results.

Currency ​

price_min and price_max are in the shop's base currency. On a multi-currency Markets store, that is not the presentment currency the shopper sees.

Do not convert by multiplying by an exchange rate. Markets prices can be set per country in price lists, with their own rounding, so a multiplied price is not the price Shopify shows. On a multi-currency Markets store where the two currencies differ, either

  • do not render the price, or
  • fetch only the prices you render from Shopify's Storefront API.

How to tell the two apart is in the Search API specification, under "Detecting this on a multi-currency store". Tell us if multi-currency support matters to you.


Next: Glossary

Marutto Search