まず第一に、私は常に動作するサンプルを投稿したいと思っていますが、これは Shopify の js とサーバーサイド レンダリング リキッドの組み合わせであるため、実行中のサンプルを入手することはできません。
Shopify では、この {{ Product }}
のように、商品テンプレートから product
オブジェクトにアクセスできます。
ショッピング カート オブジェクトには、ショッピング カート内のすべてのアイテムの配列である items
属性があります。ショッピング カート内の各 item
オブジェクトは、product
オブジェクトとは異なります。 product
オブジェクトにはバリエーションのリストがありますが、cart item
オブジェクトにはありません。
この目的は、ショッピング カート内のアイテムのサイズを編集できるようにすることです。
私の質問は、リンクされているすべてのバリエーションを取得するにはどうすればよいですか?製品に移動して、その製品内のすべてのバリエーションのリストを取得し、バリエーションから product_id
を取得する必要があります。
これが難しい理由は、カート オブジェクトの get 応答を取得すると、カート内の item
ごとに product_id
を取得するためです。ただし、製品ページにいない限り、製品オブジェクトを取得することはできません。
ショッピング カートを次のように視覚化すると次のようになります:
リーリー完了する必要があるのは次のとおりです:
リーリー
製品 ID またはハンドルをお持ちの場合は、いつでも Shopify に電話して、製品に割り当てられたすべてのバリエーションやすべてのオプションなど、製品に関する詳細情報を取得できます。したがって、別のオプションに変更するには、カートからバリアント ID を削除し、必要な別の ID を追加する必要があります。 StorefrontAPI 呼び出しを使用して製品情報を取得できます。通常、これが販売者が必要なことを行う方法です。
丸一日格闘した後、ついにそれを理解しました。この問題に遭遇した他の人も、同様のことを行う必要があります。
ショッピング カート テンプレートから、
リーリーcart.liquid
これで、カート内の商品属性ごとにバリエーションが追加されました。