カートページ:カート内商品による条件分岐について

急ぎで質問がございます。

テーマDawnで構築を行っております。

以下の「カートページにギフト包装のオプションを追加する」を参照して、

cartページにて、紙袋の有無を選択できるようなカスタマイズを実装しています。

https://help.shopify.com/ja/manual/online-store/themes/themes-by-shopify/vintage-themes/customizing-vintage-themes/add-gift-wrap-option

 <div class="bagOption">中身は省略</div>

この度、新しいコレクション(仮にsubscriptionとします)を追加したのですが、

subscriptionの商品がカート内に入っている時は、以下の"bagOption”のクラス自体を非表示にしたいです。

もしお分かりになる方がいらっしゃいましたら、ご教授いただけますと幸いです。

よろしくお願い申し上げます。

前提不明のため以下の前提と要望に絞って方向性のみ記載します。

  • subscriptionコレクションに属する商品がカートに入っている時にのみ、カートページで何らかの動作を実行したい
  • liquidのみので対応

■方向性の一例

cart.itemsから辿ってsubscriptionコレクションに属する商品か否かを判別し、その情報を使ってif文を作り表示切り替えを行うことが検討できます。

ただしこの方法ではカート内で該当商品を削除した場合に表示切り替えは動作しません。

この点に関しては対応が必要な場合はJSを併用する必要があると思いますが、恐らく仕組みから考え直す必要があるかなと思います。

試していないため推測ですが、liquidで該当コレクション内の全商品のIDを取得してJS内に変数として出力しておき、その変数を元にJSで表示を操作するなどが考えられるかもしれません。

参考:

https://shopify.dev/docs/api/liquid/objects/cart#cart-items

https://shopify.dev/docs/api/liquid/objects/line_item#line_item-product

https://shopify.dev/docs/api/liquid/objects/product#product-collections

https://shopify.dev/docs/api/ajax/reference/cart

以上ですが、想定が間違っている場合は申し訳ありません。

他方、想定は合っているが回答がよくわからないという場合はエキスパートやパートナーに依頼することをお勧めします。

または、記載されているヘルプにある通りテーマサポートの依頼が検討できるかもしれません。