Al utilizar la API de Shopify, no puede usar cart/change.js para cambiar las propiedades de una línea de pedido. La razón es que cart/change.js usa 'propiedades' para encontrar la línea de pedido que desea. La documentación API omite esto. Aquí está un ejemplo:
Cuando hago un POST al carrito de compra/add.js con los siguientes parámetros de URL codificada:
quantity=9403&id=278440178&properties%5Bmy-property%5D=property%20BAR
La respuesta incluirá,
"properties":{"my-property":"property BAR"}
Cuando continúo para hacer una POST en cart/change.js para cambiar la propiedad de BAR a FOO,
id=278440178&properties%5Bmy-property%5D=property%20FOO
A continuación, la respuesta incluirá,
"properties":{"my-property":"property BAR"}
Es decir, yo era incapaz de cambiar la propiedad del elemento de línea de esta manera. Puede sospechar que esto se deba a que hay algún truco en la API carrito/change.js, pero este no es el caso.
Aviso, cuando intento para eliminar un elemento de línea al incluir un anuncio al carrito de compra/change.js y especificando quantity=0
, así:
quantity=0&id=278440178&properties%5Bmy-property%5D=property%20FOO
Con la propiedad property FOO
ser uno que no pertenece a cualquier artículo (mi carrito solo tiene un artículo con property BAR
en este momento), el artículo no se elimina del carrito. Si por el contrario lo hago:
POST: quantity=0&id=278440178&properties%5Bmy-property%5D=property%20BAR
El elemento se elimina de forma normal.
Conclusión: en cart/change.js, shopify utiliza las propiedades del elemento de línea de la misma forma que usa 'id', es decir, para encontrar la línea cuya cantidad desea cambiar. De la misma manera que no puede usar cart/change.js para cambiar la identificación de una línea de pedido, no puede usarla para cambiar las propiedades de una.
estoy teniendo este problema a. Como solución alternativa, elimino y vuelvo a agregar el elemento de línea cada vez que ToT; – Ziggy