如何在Shopify中清空购物车属性?
问题原因
这个是Shopify在2023年Q4推出的官方功能调整,不是平台bug。/cart/clear接口的行为从原来的清空购物车全部数据,修改为仅清空购物车中的商品条目,保留购物车全局属性(cart attributes),目的是方便商家存储用户的全局偏好配置(比如配送时间预约、包装要求、优惠券兑换标记这类不需要依附商品存在的信息),避免用户清空加购商品后需要重复填写全局配置。
清空购物车属性的解决方案
你可以通过/cart/update.js接口主动覆盖购物车属性为空对象实现清空,两种常见的使用场景如下:
- 仅需要清空购物车属性,保留现有商品
$.ajax({ type: "POST", url: '/cart/update.js', data: { attributes: {} }, success: function(){ alert('购物车属性已清空!'); }, dataType: 'json' });
- 需要同时清空购物车商品 + 购物车属性,替换你原来的clear逻辑即可:
// 先清空商品 $.ajax({ type: "POST", url: '/cart/clear.js', success: function(){ // 商品清空成功后再清空属性 $.ajax({ type: "POST", url: '/cart/update.js', data: { attributes: {} }, success: function(){ alert('购物车商品及属性已全部清空!'); }, dataType: 'json' }); }, dataType: 'json' });
补充说明
如果你只需要删除特定的购物车属性,不需要全部清空,只需要在attributes参数中把对应字段的值设为空字符串即可,示例:
data: { attributes: { '预约配送时间': '' // 仅删除该属性,其余属性保留 } }
内容的提问来源于stack exchange,提问作者Corey
相关产品推荐
相关产品推荐

