Debutを元に今、商品詳細ページを作成しています。
そこで質問なのですが、Liquidでバリアントの色を選択したとき、同時に画像の表示もその色の画像に変更させるにはどのような方法を利用したら良いのでしょうか?
例としてこちらのサイトのようなものが実現したい内容です。
どちらのサイトも色を選択するとその色に沿った画像を表示させています。
できれば変更させる画像は1枚だけでなく複数変更させたいです。
ShopifyのDebutテーマで、色などのバリアント選択に応じて商品画像を切り替える方法。複数画像を色ごとに切り替えたい要件。
解決策(最新):Liquid(Shopifyのテンプレート言語)で、画像の代替テキスト(image.alt)にSKU(在庫管理単位)を入れ、選択中のバリアント(product.selected_or_first_available_variant)のSKUと一致する画像を表示。これにより、同一バリアントに紐づく複数画像の切替が可能。コードスニペットが中心の情報。
代替案:管理画面で各バリアントに画像を割り当て(バリエーション列の画像アイコン)ればDebutで切替可。ただし1枚のみの制約があり、複数画像の切替要件には不十分。
未解決点:ドロップダウンで色を選んだ際、リアルタイムでメイン画像が切り替わらず、リロード後に反映されるという報告あり。選択と表示の即時連動方法(JavaScript連動の実装など)が未提示。議論は継続中。
Debutを元に今、商品詳細ページを作成しています。
そこで質問なのですが、Liquidでバリアントの色を選択したとき、同時に画像の表示もその色の画像に変更させるにはどのような方法を利用したら良いのでしょうか?
例としてこちらのサイトのようなものが実現したい内容です。
どちらのサイトも色を選択するとその色に沿った画像を表示させています。
できれば変更させる画像は1枚だけでなく複数変更させたいです。
解決しました。
商品画像にある代替テキスト(image.alt)にskuをいれ、表示するvariantのskuとimage.altが一致する場合の画像を表示させることによって画像の出しわけができました。
{%- assign current_variant = product.selected_or_first_available_variant -%}
{% for image in product.images %}
{% if current_variant.sku == image.alt%}
{% endif %}
{% endfor %}
ご回答ありがとうございます。
確かにそこに画像を当て込めば、バリアントごとに画像は変えれるのですが、そこだと一枚しか画像を変えることができないですね。
今回やりたかったこととしては色(別のバリアント)を選択した時に複数枚の画像を変更したかったので自分のやり方で問題ないと思います。
はじめまして。
shopify初心者です。
variantごとに画像切り替えのため、コードを参考にさせていただいております。
しかし、このままだと、ドロップダウンで色選択しても、サムネイルしか変わりません(デフォルトの状態)。
リロードするとドロップダウンで選択された項目が反映されるのですが、、、
どのようにすればドロップダウンでの選択と表示させる画像がリアルタイムで連動するのでしょうか?
よろしくお願いいたします。