Liquid、JavaScriptなどに関する質問
商品ページにてバリエーションのオプションが2つある場合、
利用できないバリエーションの場合は2つ目のバリエーション選択のオプションから非表示にしたいのですがどうすれば可能でしょうか?
例えば以下のような場合です。
カラー:ブラック、ブルー、ピンク
サイズ:XS、S、M、L、XL
ピンクのみXS、S、M、Lのサイズ展開
この場合、ブラック、ブルーのXSとピンクのXLに関しては利用できないバリエーションとなるのでカラーを選んだ段階で非表示にしたいです。
@にしの 様
可能ではありますが、かなりのカスタマイズが必要です。
Dawn 12.0.0 を前提として、コンセプトだけお伝えします。
「1」については比較的簡単なので、
Dawn 12.0.0を前提にコードカスタマイズの具体的な方法を記載いたします。
https://github.com/Shopify/dawn/blob/main/snippets/product-variant-options.liquid#L27-L46
この部分を下記のように書き換えます。
assign option_disabled = true
assign option_exist = true
for option1_name in variants_option1_arr
case option.position
when 1
if variants_option1_arr[forloop.index0] == value and variants_available_arr[forloop.index0]
assign option_disabled = false
endif
when 2
if option1_name == product.selected_or_first_available_variant.option1 and variants_option2_arr[forloop.index0] == value and variants_available_arr[forloop.index0]
assign option_disabled = false
else
if option1_name == product.selected_or_first_available_variant.option1
assign variants_option2_filtered_by_option1_arr = product.variants | where: "option1", option1_name | map: 'option2'
unless variants_option2_filtered_by_option1_arr contains value
assign option_exist = false
endunless
endif
endif
when 3
if option1_name == product.selected_or_first_available_variant.option1 and variants_option2_arr[forloop.index0] == product.selected_or_first_available_variant.option2 and variants_option3_arr[forloop.index0] == value and variants_available_arr[forloop.index0]
assign option_disabled = false
endif
endcase
endfor
存在しなオプションの場合、option_existがfalseになりますので、
それを利用して、バリエーション切替ボタンの表示/非表示を制御します。
しかし、
「2」のJavaScriptの改修も必須になるのですが、
そちらは簡単にお伝えできる内容ではないため、
身近な詳しい方や制作会社様にお声がけいただくのが良いかと思います。
ご参考まで。
(キュー田辺)
Shopifyペイメント決済サービスを利用していて、ストアの管理画面の通知セクションに突然「Shopifyペイメントの使用を継続するために必要な情報」というバナーメッセージが表示さ...
By Mirai Dec 3, 2023すべてのShopifyアカウントはデフォルトではmyshopify.comのURLと関連付けられており、これはアカウント設定時に使用したビジネス名に基づいて作成されます。しかし、オ...
By Nina_13 Nov 26, 2023このトピックは英語版コミュニティの投稿:Shopify Web Pixel Manager Sandbox FAQの日本翻訳です。
By Mirai Nov 19, 2023