Shopify Ajax API - /cart/update.js 无法更新产品数量
我尝试使用
Shopify Ajax API
从购物车中删除产品,但产品未被删除,控制台中出现
Unexpected token: ':'
错误。
$(".slide-cart-remove").on("click", function() {
var id = $(this).attr("id");
jQuery.post('/cart/update.js', {updates: {id: 0}});
});
点击“删除”按钮时,我调用 API 将其数量更新为 0。“删除”按钮的 ID 是我要删除的产品的
variant_id
,这就是我传递它的原因。
这就是我赋予它与
variant_id
相同的 ID 的方式,如果它产生任何区别:
$(productRemove).attr("id", data.items[i].variant_id);
语法中我遗漏了什么吗?
编辑:如下所述,我尝试将语法更改为此:
jQuery.post('/cart/update.js', {quantity: 0, id: varId});
但是,它似乎仍然不起作用。(
请注意,
varId
变量包含购物车中产品的实际变体 ID
)
您可以使用 Shopify 文档来解决这个问题。由于设置不正确,您尝试向 update.js 端点发送 POST 失败。在此处查看调用此端点的正确方法:
https://help.shopify.com/en/themes/development/getting-started/using-ajax-api#update-cart
我也遇到了这个问题,因为我试图删除购物车中的某些商品。一旦我添加
contentType: 'application/json'
并字符串化我发布的数据(例如
JSON.stringify(data)
),我就成功了。
我知道这已经很老了 - 但我最近遇到了这个问题,如果你想使用变体的“id”(而不是订单项编号)进行更新,请使用
/change
端点,而不是
/update
。
https://shopify.dev/docs/api/ajax/reference/cart#post-locale-cart-change-js
在文档中,它说两者都可以执行该功能 - 但
/update
不允许我使用变体 ID,而
/change
允许。
希望这有帮助。