我尝试在选择运输方式后将新属性添加到结帐页面上的购物车中,我可以在控制台上看到该属性,直到付款页面,但是完成结帐后,我在结帐页面上添加的属性不可用在订单状态页和电子邮件确认模板上。结帐后丢失。这是我正在用来更新购物车属性的代码段:
function updateCartAttributes(data, callback) {
var params = {
type: 'POST',
url: '/cart/update.js',
data: data,
dataType: 'json',
success: function(cart) {
if ((typeof callback) === 'function') {
callback(cart);
}
else {
Shopify.onCartUpdate(cart);
}
},
error: function(XMLHttpRequest, textStatus) {
Shopify.onError(XMLHttpRequest, textStatus);
// $("#load").hide();
},
complete: function(jqxhr, text) {
$("#load").hide();
}
};
$.ajax(params);
};
这就是我调用此函数和回调的方式:
function noteSaved(cart){
jQuery.getJSON('/cart.js', function(cart) {
console.log( JSON.stringify(cart) );
} );
$("#load").hide();
}
var attribute = "attributes[Tax_Note]=INTERNATIONAL ORDER: Local Taxes, VAT and/or Duty will be collected AT TIME OF DELIVERY";
updateCartAttributes(attribute,noteSaved);
这是付款页面的ss
答案 0 :(得分:0)
我认为您必须在结帐之前添加购物车属性。您在结帐时所做的任何事情都可能被Shopify当作噪音丢弃。如果他们允许在结帐时使用随机脚本,则会造成混乱。也许,如果您对此理论进行检验,它将使您能够在购物车流动时做出相同的记录,因此您的属性将在订单周期结束时存在。
答案 1 :(得分:0)
我正在与Rohit合作,Shopify告诉我们这确实是可能的。第一件事是确保启用了checout.liquid,然后在结帐过程中所在国家/地区不是美国时,可以使用checkout.shipping_address值调用弹出窗口。也许这些信息会有所帮助。