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 TurkishAnalysis 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=enOmitted, 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 }}.
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, not the presentment currency the shopper sees.
On a multi-currency Markets store, either
- convert on your side, or
- fetch prices for rendering from Shopify's Storefront API.
Tell us if multi-currency support matters to you.
Next: Glossary