如何使用shopify api从购物车页面更新产品属性

如何使用shopify api从购物车页面更新产品属性,shopify,Shopify,我已经为“添加到购物车”添加了属性,但是现在如何使用Shopify API更新这些属性,您可以通过点击Shopify的/cart/change.js端点来更新购物车中商品的属性。此端点需要: 行编号或id-id可以是项.id(与变体id相同,因此在使用行项属性时不保证唯一)或项.key,保证唯一 “新”数量值-如果未指定,Shopify将默认数量为1,无论当前数量是多少,以及 一个properties对象,它将替换当前行项目上的所有属性。(因此,务必确保将所有未更改的属性及其当前值也包括在内!

我已经为“添加到购物车”添加了属性,但是现在如何使用Shopify API更新这些属性,您可以通过点击Shopify的
/cart/change.js
端点来更新购物车中商品的属性。此端点需要:

  • 编号或
    id
    -
    id
    可以是
    项.id
    (与变体id相同,因此在使用行项属性时不保证唯一)或
    项.key
    ,保证唯一
  • “新”
    数量
    值-如果未指定,Shopify将默认数量为
    1
    ,无论当前数量是多少,以及
  • 一个
    properties
    对象,它将替换当前行项目上的所有属性。(因此,务必确保将所有未更改的属性及其当前值也包括在内!)
因此,作为一个示例(使用jQuery-works也可以使用原始XHR或Fetch):


谢谢你给我答案,但我不能改变属性,只能通过这个API改变一个数量。我把这个代码放在jQuery.ajax({url:'/cart/change.js',type:'post',dataType:'json',data:{id:variant_id,quantity:total_qty,properties:curLink},success:function(cart){/*Yay!购物车已更新!*/});您在
curLink
变量中传递了什么?另外,如果您在商店中使用商品属性,我强烈建议避免将
variant\u id
作为id(主题范围),因为如果两个行项目具有不同的行项目道具,则它们可以具有相同的变体ID。我强烈建议使用该项目的
,因为它保证是唯一的。当相同的变体在购物车中重复时,使用变体ID点击
/cart/change
/cart/update
,可能会产生各种意外的后果副作用。
jQuery.ajax({
  url: '/cart/change.js',
  type: 'post',
  dataType: 'json',
  data: {
    id: item.key,
    quantity: item.quantity,
    properties: new_properties
  },
  success: function(cart){ /* Yay!  The cart updated! */ }
})