Korzystając z interfejsu API Shopify, nie można użyć koszyka/change.js do zmiany właściwości elementu zamówienia. Powodem jest to, że cart/change.js używa "właściwości", aby znaleźć żądany element zamówienia. Dokumentacja API pomija to. Oto przykład:
Kiedy złożyć pocztą do koszyka/add.js z następującymi parametrami url zakodowane:
quantity=9403&id=278440178&properties%5Bmy-property%5D=property%20BAR
Odpowiedź będzie obejmować,
"properties":{"my-property":"property BAR"}
Po przejściu do POST do koszyka/change.js, aby zmienić właściwość z BAR na FOO,
id=278440178&properties%5Bmy-property%5D=property%20FOO
Wtedy odpowiedź będzie obejmować
"properties":{"my-property":"property BAR"}
Oznacza to, że nie byłem w stanie zmienić właściwość elementu zamówienia w ten sposób. Możesz podejrzewać, że dzieje się tak dlatego, że jest jakiś trick dla API koszyka/change.js, ale tak nie jest.
Wskazówki, gdy próbuję usunąć element zamówienia dokonując Posta do koszyka/change.js i określając quantity=0
, tak:
quantity=0&id=278440178&properties%5Bmy-property%5D=property%20FOO
Z posesji property FOO
jest jednym, że nie należy do dowolnego przedmiotu (mój koszyk ma tylko przedmiot z numerem property BAR
), przedmiot nie jest usuwany z koszyka. Jeśli z drugiej strony to zrobić:
POST: quantity=0&id=278440178&properties%5Bmy-property%5D=property%20BAR
Element zostanie usunięty jako normalne.
Wniosek: w koszyku/change.js shopify używa właściwości wiersza elementu w taki sam sposób, w jaki używa "id", czyli znajduje element zamówienia, którego wielkość chcesz zmienić. W taki sam sposób, w jaki nie można użyć koszyka/change.js do zmiany identyfikatora elementu zamówienia, nie można go użyć do zmiany właściwości jednego z nich.
mam ten problem. W trakcie pracy usuwam i ponownie dodam element zamówienia za każdym razem ToT; – Ziggy