开发者问题收集

Shopify Ajax API - /cart/update.js 无法更新产品数量

2018-12-16
14496

我尝试使用 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

3个回答

您可以使用 Shopify 文档来解决这个问题。由于设置不正确,您尝试向 update.js 端点发送 POST 失败。在此处查看调用此端点的正确方法:

https://help.shopify.com/en/themes/development/getting-started/using-ajax-api#update-cart

David Lazar
2018-12-16

我也遇到了这个问题,因为我试图删除购物车中的某些商品。一旦我添加 contentType: 'application/json' 并字符串化我发布的数据(例如 JSON.stringify(data) ),我就成功了。

D. Weber
2019-02-28

我知道这已经很老了 - 但我最近遇到了这个问题,如果你想使用变体的“id”(而不是订单项编号)进行更新,请使用 /change 端点,而不是 /update

https://shopify.dev/docs/api/ajax/reference/cart#post-locale-cart-change-js

在文档中,它说两者都可以执行该功能 - 但 /update 不允许我使用变体 ID,而 /change 允许。

希望这有帮助。

Izaac Barratt
2024-06-25