Liquid、JavaScriptなどに関する質問
コレクションをバリエーション毎に出力しているため、在庫バリーションがMサイズのみしか適用できない状態になっております。
forloop.index0によってMのblue Mのblack・・・等
Mしか在庫が反映されない問題が起こっています。
下記URLを参考
https://alanryan.dev/tips/color-variants-collection-page/
そのため、メタフィールドでバリーション毎に登録して在庫あるかどうかの判定ができないか考えました。
{% assign variable = product.metafields.custom.test.value %} {%- for products in variable -%} {%assign zaiko = products.available %} {{ zaiko }} {%- endfor -%}
一応上記のコードで在庫の有無を6つ取り出せることができました。
ですが、trueが6つ出力されてしまうので、M,L合わせて一つにして各商品ごとに真偽値で出し分けることは可能でしょうか?
ご回答いただけると助かります。
M,L合わせて一つにして各商品ごとに真偽値で出し分ける
上記ご要望を把握できかねていますが、forで順次出力される値をまとめたいのであれば、appendとsplitを使った配列作成で対応できるかと思います。
Googleなどで「Shopify 配列作成」あたりで検索すればサンプルが色々見つかると思いますので、それらを参照ください。
場合によっては真偽値の他に別の情報も追加すれば、配列作成後の処理に利用できると思います。
配列を作らない方法としては、必要な数だけ変数を作成し、forループ内で条件に応じて各変数に値を入れる形でも対応できるかなと思います。
参考:
https://shopify.dev/api/liquid/filters/array-filters
オンラインストアを運営する中で、商品の返品や交換は重要なプロセスとなります。Shopify管理画面を通して簡単に返品や交換が行えることをご存知でしょうか?希望する場合は、お客...
By Mirai Sep 15, 2024Shopifyの請求書の支払いが失敗したという通知を受け取って驚いたことはありますか。初めての支払いでエラーが発生したり、これまで何の問題もなく支払いできていたのに突然失敗し...
By Minami_ Sep 8, 20242023年2月、Shopifyはcheckout.liquidを廃止し、Checkout Extensibilityに移行することを発表いたしました。この新しいチェックアウト...
By JasonH Aug 15, 2024