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

Jquery Shopify Ajax API-/cart/update.js无法更新产品数量,jquery,ajax,shopify,Jquery,Ajax,Shopify,我正试图使用从购物车中删除产品,但该产品未被删除,我得到一个意外的标记:':' 控制台中的错误 $(".slide-cart-remove").on("click", function() { var id = $(this).attr("id"); jQuery.post('/cart/update.js', {updates: {id: 0}}); }); 单击remove按钮,我将调用API将其数量更新为0。移除按钮的ID是我试图移除的产品的变体ID,这就是我传递它的原因

我正试图使用从购物车中删除产品,但该产品未被删除,我得到一个意外的标记:':' 控制台中的错误

$(".slide-cart-remove").on("click", function() {
    var id = $(this).attr("id");
    jQuery.post('/cart/update.js', {updates: {id: 0}});
});
单击remove按钮,我将调用API将其数量更新为0。移除按钮的ID是我试图移除的产品的变体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端点的操作失败。请参见此处调用此端点的正确方法:


您可以使用Shopify文档来解决这个问题。由于安装不正确,您尝试发布到update.js端点的操作失败。请参见此处调用此端点的正确方法:


我也遇到了麻烦,因为我试图删除购物车中的某些项目。一旦我添加了contentType:'application/json'并字符串化了我发布的数据,比如json.stringifydata,我就成功了

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

更新采用变量ID和数量。提供这些,您将神奇地从购物车中删除变体。@DavidLazar我将提供这两种。正如文章中提到的,id变量包含我要删除的产品的变体id。除非您编辑文章,否则您没有提供正确的对象。您的{quantity:0,id:123456789}对象在哪里?您的对象无效:{updates:{id:0}}更新采用变量id和数量。提供这些,您将神奇地从购物车中删除变体。@DavidLazar我将提供这两种。正如文章中提到的,id变量包含我要删除的产品的变体id。除非您编辑文章,否则您没有提供正确的对象。您的{quantity:0,id:123456789}对象在哪里?您的对象无效:{updates:{id:0}}我实际上从该文档复制了用于发布的语法,它几乎与提供的语法完全相同:jQuery.post'/cart/update.js',{updates:{794864053:5};完全复制并粘贴该页面,所以我不知道为什么您会认为我的语法不正确。我只是按照您的方式尝试了一下,但仍然不起作用:jQuery.post'/cart/update.js',{quantity:0,id:varId};。我已经更新了帖子来说明这一点。胡说八道!我只是把他们的代码用在我的测试商店里,一切都很完美。我同情你!隐藏的打字错误之类的!明白了!根据文档:要更改一行项目的数量,您需要使用/cart/change.js,并提供购物车中项目的基于1的索引。我使用了jQuery.post'/cart/change.js',{line:1,quantity:0};它似乎起到了作用。将此标记为答案,因为它确实在文档中。您从未指定使用行项目属性。是的,这确实改变了一切。由于购物车中可以有多个相同的变量,因此不能只发送一个零并期望将其删除,必须提供行项目索引值。所以我认为你的尤里卡时刻来自于意识到你的问题在细节上是模糊的。虽然很好。。。你解决了你的问题!实际上,我复制了该文档中用于发布的语法,它几乎与提供的语法完全相同:jQuery.post'/cart/update.js',{updates:{794864053:5};完全复制并粘贴该页面,所以我不知道为什么您会认为我的语法不正确。我只是按照您的方式尝试了一下,但仍然不起作用:jQuery.post'/cart/update.js',{quantity:0,id:varId};。我已经更新了帖子来说明这一点。胡说八道!我只是把他们的代码用在我的测试商店里,一切都很完美。我同情你!隐藏的打字错误之类的!明白了!根据文档:要更改一行项目的数量,您需要使用/cart/change.js,并提供购物车中项目的基于1的索引。我使用了jQuery.post'/cart/change.js',{line:1,quantity:0};它似乎起到了作用。将此标记为答案,因为它确实在文档中。您从未指定使用行项目属性。是的,这确实改变了一切。由于购物车中可以有多个相同的变量,因此不能只发送一个零并期望将其删除,必须提供行项目索引值。所以我认为你的灵感来自于意识到你的问题
It’那个细节很模糊。虽然很好。。。你解决了你的问题!谢谢解决了我的问题!解决了我的问题