多言語ストアでの動作
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 で多通貨展開している場合は、
- 御社側で換算する
- 価格の描画だけ Shopify の Storefront API から取得する
のいずれかをご検討ください。多通貨対応のご要望があればお知らせください。
次に読む: 用語集