FROM CACHE - jp_header
解決済

表示されている商品詳細ページがどの商品なのかをScriptTag APIで設定したJavaScriptで判別したい

nowheresville
観光客
6 0 1

ScriptTag APIで設定したJavaScriptにて、商品ごとに挙動を変える といったことを実現したいと考えています。

そこで、JavaScriptの処理内で 表示されている商品詳細ページがどの商品なのか を判別するのにどういったアプローチが有効なのかを悩んでおります・・

 

現状、下記のようなアイデアはあります。

  • URLから判別し、末尾の文字列を商品名として判別
  • ページのHTMLから判別し、classに「product-single__title」が設定されたタグ要素で商品名を判別
    • 例えば 、<h1 class="product-single__title">白Tシャツ</h1>

なのですが、オンラインストアのテーマが「Debut」以外である場合や、有料テーマを利用している場合でも有効なのか分からず・・

 

もし他に何か良い方法があればご教示いただければ幸いです。

1 件の受理された解決策
junichiokamura
Community Manager
1200 280 506

成功

JSだけで完結するなら、ご指摘の方法になると思います。なお、テーマを変えてもShopifyのオンラインストアのURLの構成は一緒ですので、URLから判別はどのテーマでも有効かと思います。

Senior Partner Solutions Engineer

元の投稿で解決策を見る

5件の返信5

nowheresville
観光客
6 0 1

 

可能であれば、「商品名」ではなく「Variant ID」や「Product ID」の値が取得できれば扱いやすいのかなと考えています・・

junichiokamura
Community Manager
1200 280 506

成功

JSだけで完結するなら、ご指摘の方法になると思います。なお、テーマを変えてもShopifyのオンラインストアのURLの構成は一緒ですので、URLから判別はどのテーマでも有効かと思います。

Senior Partner Solutions Engineer
nowheresville
観光客
6 0 1

@junichiokamura 

ご回答ありがとうございます!

テーマを変えてもShopifyのオンラインストアのURLの構成は一緒ですので、URLから判別はどのテーマでも有効かと思います。

そうなのですね、安心しました。

 

ちなみなのですが・・

試しに(実際にはあり得ないかもしれませんが)商品名を「012345 TEST %$#@!&*()_+」と入力した商品を登録してオンラインストアでURLを確認してみたところ、

https://{SHOP_NAME}.myshopify.com/products/012345-test-_

となっていました。(エンコードされているのかと思います)

こうなってくるとURLから正しく商品名を判別するのは難しいのかなと思ってしまいましたが、

何か良い解決策などあれば、教えていただきたいです。

 

junichiokamura
Community Manager
1200 280 506


日本語のハンドルも、JSで取得したときにはデコードされたものになっていると思うので、そういう記号もデコードされて取得できるのではと思います。

もし、エンコードされたままのものである場合、デコード処理をかければいいと思います。

Senior Partner Solutions Engineer
nowheresville
観光客
6 0 1

@junichiokamura 

ご回答ありがとうございます!

ちょっと勘違いしていました・・

よくよく確認してみたところ、オンラインストアの商品ページのURL末尾の値は、商品名がエンコードされた値ではなく、商品の handle値 だったんですね!

これでなんとか処理できそうです。助かりました!