FROM CACHE - jp_header

メタフィールドの商品バリエーション (リスト)から在庫を表示判定させたい。

yuche
Shopify Partner
1 0 0

コレクションをバリエーション毎に出力しているため、在庫バリーションがMサイズのみしか適用できない状態になっております。

forloop.index0によってMのblue Mのblack・・・等

Mしか在庫が反映されない問題が起こっています。

 

 

下記URLを参考

https://alanryan.dev/tips/color-variants-collection-page/

 

そのため、メタフィールドでバリーション毎に登録して在庫あるかどうかの判定ができないか考えました。

yuche_0-1666872287689.png

 

 

 

 

 

 

 

 

 

 

 

 

      {% assign variable = product.metafields.custom.test.value %}
        {%- for products in  variable -%}
       {%assign zaiko =  products.available %}
          {{ zaiko  }}
        {%- endfor -%}

一応上記のコードで在庫の有無を6つ取り出せることができました。

 

ですが、trueが6つ出力されてしまうので、M,L合わせて一つにして各商品ごとに真偽値で出し分けることは可能でしょうか?

 

ご回答いただけると助かります。

 

1件の返信1

Jizo_Inagaki
Shopify Partner
1028 385 703

M,L合わせて一つにして各商品ごとに真偽値で出し分ける

上記ご要望を把握できかねていますが、forで順次出力される値をまとめたいのであれば、appendとsplitを使った配列作成で対応できるかと思います。

Googleなどで「Shopify 配列作成」あたりで検索すればサンプルが色々見つかると思いますので、それらを参照ください。

場合によっては真偽値の他に別の情報も追加すれば、配列作成後の処理に利用できると思います。

 

配列を作らない方法としては、必要な数だけ変数を作成し、forループ内で条件に応じて各変数に値を入れる形でも対応できるかなと思います。

 

参考:

https://shopify.dev/api/liquid/filters/array-filters

Jizo_Inagaki | フリーランスのwebデザイナー
- テーマのカスタム承れます。
- 記載した回答で解決できましたらベストソリューションの承認をお願いします。
- DMや指名による対応はご依頼として有料でのみ承ります。