多言語ストアでの動作
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 }} から取れます。
params.set("locale", window.Shopify?.locale ?? "ja");翻訳されたテキストの検索
Shopify の翻訳機能で登録された商品名・説明文は、言語ごとに別々に索引されます。英語で検索すれば英語の商品名に、日本語で検索すれば日本語の商品名にヒットします。
翻訳の同期について
Shopify には翻訳の Webhook がありません。商品の翻訳を編集しても、products/update は届きません。
そのため、まるっと検索は定期的にストアの翻訳を照合して更新しています。商品本体の変更(数秒で反映)と違い、翻訳の変更が検索に反映されるまでには時間差があります。
翻訳を大量に更新した直後に検索結果を確認する場合は、管理画面から同期を実行してください。
価格の通貨
price_min / price_max はショップの基準通貨です。Markets で多通貨展開している場合、買い物客が見ている表示通貨とは一致しません。
為替レートを掛けて換算しないでください。Markets の価格は国ごとの価格リストで個別に設定でき、丸め方も指定できるため、掛け算では正しい価格になりません。基準通貨と表示通貨が違うときは、次のどちらかをご検討ください。
- 価格を描画しない
- 価格の描画だけ Shopify の Storefront API から取得する
判定のしかたは検索API の仕様の「多通貨ストアでの判定方法」にあります。多通貨対応のご要望があればお知らせください。
次に読む: 用語集