Skip to content

多言語ストアでの動作 ​

Shopify Markets などで複数の言語を展開しているストア向けの説明です。日本語のみのストアでは、このページの内容は関係ありません。

対応言語 ​

検索の解析に対応しているのは11言語です。

日本語 英語 フランス語 スペイン語 イタリア語 ポルトガル語
ドイツ語 オランダ語 ポーランド語 チェコ語 トルコ語

言語ごとに解析の方法が変わります。日本語は形態素解析、ラテン文字の言語は語形の変化(複数形・活用)を吸収する処理を行います。

対応していない言語は、まるっと検索では検索できません。その場合は Shopify 標準の検索に自動で切り替わります(degraded_reason: "analyzer_mismatch")。

言語の指定 ​

locale パラメータで解析言語を切り替えます。

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

省略した場合は、ストアで設定されている言語が使われます。

買い物客が見ているページの言語を渡してください。 英語のページで日本語の解析器を使うと、語の切り出しが合わず、精度が落ちます。Shopify のテーマでは {{ request.locale.iso_code }} から取れます。

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

翻訳されたテキストの検索 ​

Shopify の翻訳機能で登録された商品名・説明文は、言語ごとに別々に索引されます。英語で検索すれば英語の商品名に、日本語で検索すれば日本語の商品名にヒットします。

翻訳の同期について ​

Shopify には翻訳の Webhook がありません。商品の翻訳を編集しても、products/update は届きません。

そのため、まるっと検索は定期的にストアの翻訳を照合して更新しています。商品本体の変更(数秒で反映)と違い、翻訳の変更が検索に反映されるまでには時間差があります。

翻訳を大量に更新した直後に検索結果を確認する場合は、管理画面から同期を実行してください。

価格の通貨 ​

price_min / price_max はショップの基準通貨です。Markets で多通貨展開している場合、買い物客が見ている表示通貨とは一致しません。

為替レートを掛けて換算しないでください。Markets の価格は国ごとの価格リストで個別に設定でき、丸め方も指定できるため、掛け算では正しい価格になりません。基準通貨と表示通貨が違うときは、次のどちらかをご検討ください。

  • 価格を描画しない
  • 価格の描画だけ Shopify の Storefront API から取得する

判定のしかたは検索API の仕様の「多通貨ストアでの判定方法」にあります。多通貨対応のご要望があればお知らせください。


次に読む: 用語集

まるっと検索