首页 > 解决方案 > 完成结帐后购物车属性不可用

问题描述

选择运输方式后,我正在尝试在结帐页面上向购物车添加一个新属性,我可以在控制台上看到该属性,直到付款页面,但是在完成结帐后,我在结帐页面上添加的属性在订单状态中不可用页面和电子邮件确认模板。它在结帐后丢失。这是我用来更新购物车属性的片段:

    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

在此处输入图像描述

标签: ajaxshopify

解决方案


我认为您必须在结帐前添加购物车属性。您在结帐时所做的任何事情都可能只是被 Shopify 当作噪音扔掉了。如果他们允许在结帐时使用随机脚本,那将导致混乱。也许如果你测试这个理论,它会让你在 cart.liquid 时间做同样的笔记,因此你的属性将在订单周期结束时存在。


推荐阅读