カートに追加された後に項目のプロパティを変更することはできますか? (通常のフォーム送信か、AJAX 経由か?)
「properties[MyProperty]」キーを使用して /cart/change への POST を試みましたが、今のところうまくいきません。これは line パラメータと組み合わされて、一意の品目を示します。
何か案は?それとも単純に「いいえ」ですか?
Shopify の API を使用すると、cart/change.js を使用して項目のプロパティを変更することはできません。その理由は、cart/change.js が「プロパティ」を使用して必要な項目を見つけるためです。API ドキュメントではこれが省略されています。次に例を示します。
次のURLエンコードされたパラメーターを使用してcart/add.jsにPOSTを作成すると:
quantity=9403&id=278440178&properties%5Bmy-property%5D=property%20BAR
応答には、
"properties":{"my-property":"property BAR"}
プロパティを BAR から FOO に変更するために cart/change.js に POST を実行すると、
id=278440178&properties%5Bmy-property%5D=property%20FOO
次に、応答には次のものが含まれます。
"properties":{"my-property":"property BAR"}
つまり、この方法で項目のプロパティを変更できませんでした。これは、cart/change.js API にトリックがあるためだと思われるかもしれませんが、そうではありません。
次のように、cart/change.js に POST を作成して を指定して、品目を削除しようとすると注意してくださいquantity=0
。
quantity=0&id=278440178&properties%5Bmy-property%5D=property%20FOO
プロパティproperty FOO
がどのアイテムにも属していない場合 (私のカートには現在、アイテムが含まれているだけproperty BAR
です)、アイテムはカートから削除されません。一方、私がこれを行う場合:
役職:quantity=0&id=278440178&properties%5Bmy-property%5D=property%20BAR
アイテムは通常どおり削除されます。
結論: cart/change.js では、shopify は「id」を使用するのと同じ方法で品目のプロパティを使用します。つまり、数量を変更したい品目を見つけます。cart/change.js を使用して項目の ID を変更できないのと同じように、それを使用して項目のプロパティを変更することはできません。