如果客户点击Shopify商店中的某个按钮,我希望能够使用Liquid(或任何需要的东西)向我的购物车添加信息。此信息可以像字符串一样简单。客户不会看到此信息,但会用于修改购物车页面的外观。我可以愉快地解析它/将其作为一个字符串处理,如果这是我唯一的选择,但到目前为止我无法获得任何信息。我尝试使用{% capture %}
块修改cart.note,但永远不会永久修改任何内容。我也不确定如何更改line_item
属性,但也可以这样做。
答案 0 :(得分:1)
您可以在产品表单中添加名称为properties[some-prop-name]
的输入字段,其中包含所需的关联数据
例如,在产品表单中添加以下输入会在您添加产品时为产品添加订单项属性:
<input type="checkbox" name="properties[_add_to_box]" value="{{ box_identifier }}" />
如果您想动态更新订单项属性,以便在post-hoc框中添加/重新排列项目,您可以使用定位/cart/change.js
端点
以下是这样一个命令的示例,您可以在用户更改相应的输入元素时运行该命令:
/* Assuming we have a variable named cart (containing the cart JSON) and the the 0-based index for the item we want to update */
var line = index + 1; //Shopify uses 1-based indexing for line-items
var qty = cart.items[index].quantity;
jQuery.ajax({
url:'/cart/change.js',
type:'post',
dataType:'json',
data:{
line: line, /* Line to edit: REQUIRED */
quantity: qty, /* 'New' quantity - If omitted, the line will change to quantity 1! */
properties:{
/*
This properties object will replace any existing properties object on the line-item, so be sure to include everything, not just what you're changing!
Properties with keys that are prepended with an underscore (_) are hidden in Shopify's checkout page.
*/
_box_id: 'box01',
'Congratulatory Message':'Hooray! You did it!'
}
},
success:function(cart){
console.log('Success!', cart)
},
error:function(err){
alert('Something went wrong!', err)
}
})
希望这可以帮助您获得功能!
答案 1 :(得分:0)
您可以将该数据存储在订单项属性中。
Get customization information for products with line item properties
您可以使用订单项属性收集产品的自定义信息。订单项属性是您可以添加到产品页面的自定义表单字段,允许客户做出选择或添加有关产品的信息。例如,如果您提供产品雕刻,那么您可以使用订单项属性让客户输入他们想要刻在产品上的文本。
然后,您可以从液体模板访问订单项属性。