検索の文字入力に関して

【テーマ:Impuls】

検索窓に文字を1文字でも入力すると、検索画面が閉じてしまう問題が発生しています。
これは設定が要因でしょうか。

どなたか、返答いただけると助かります。

よろしくお願いいたします。

@butti

確認したところ、

検索窓に文字を打ち込んだ際に、

https://{your_store_name}.myshopify.com/search/suggest?q=test&resources[limit]=3&resources[limit_scope]=each&resources[options][unavailable_products]=last§ion_id=search-results

というURLからサジェスト内容を取得しているようなのですが、

上記URLがエラーとなっているようです。

エラーの内容は、

Expectation failed: Unsupported shop primary locale

となっており、

https://zenn.dev/unreact/articles/ajax-api-reference-predictive-search

こちらの記事を参考にしますと、

テーマがサポートされている言語のいずれかを使用していない場合、API は次のようなエラーを返します。

とのことです。

上記情報をもとに、試しに、Shopifyストアの言語設定を日本語から英語に変更したところ、検索窓の不具合は解消しました。

まとめますと、

「Impulseが日本語対応のテーマではないからエラーが出ている」ということかと思います。

Impulseのベンダーにお問い合わせいただくことをお勧めいたします。

Impulseのベンダー: https://archetypethemes.co/

ご参考まで。

(キュー田辺)

私の方でもImpulseテーマの調査をしてみました。

今回の問題の原因ですが、

キュー田辺さんの回答にありますように、ImpulseテーマはPredictive search APIをいうShopifyの機能を使っています。

このAPIは予測検索のためのAPIで、カスタマーの入力した文字から予測される候補を取得することができます。

ImpulseテーマではこのAPIがエラーになった場合に、検索モーダルを閉じる仕様になっているため、今回の事象となっています。

(個人的には、予測検索ができなかっただけなので、検索モーダル自体を閉じる必要はないのではと思います)

また、エラーになる原因ですが、Predictive search APIに日本語が対応していないためです。

https://shopify.dev/docs/api/ajax/reference/predictive-search#requirements-and-limitations

したがって、ストアフロントの言語 (カスタマーが切り替えられる言語) を日本語にした場合、エラーを返します。

(キュー田辺さんの回答では、Shopifyストアの言語設定を日本語から英語していますが、厳密にはストアの言語ではなく、ストアフロントの言語が関係します)

解決策ですが、

Impulseテーマには、検索時に上記のPredictive search APIの利用可否を選択するオプションがありますので、この設定を向こうにすれば日本語でもエラーになることなく利用できると思います。

もしストアフロントで日本語以外も利用したい、かつ日本語以外では予測検索もしたいということであれば、テーマのベンダーにお問い合わせいただくのがよいかと思います。(テーマの実装を変える必要があります)