【问题标题】:Shopify /cart/update.js not working as expectedShopify /cart/update.js 未按预期工作
【发布时间】:2021-09-30 16:28:34
【问题描述】:

我已附上代码,请检查: 如果我将数据传递给硬编码的 AJAX 函数,例如“{ 更新:{40066070315190: 0, 40067491528886: 0, 40094075945142: 0} }”,那么它工作正常,但是当我尝试使其动态并设置变体 ID 和数量通过循环然后它不会更新数据但仍会进入成功函数。

有什么问题吗?

  var formData = { updates: {} };
  jQuery.getJSON('/cart.js', function(thisCart, textStatus) { // Get cart items
    $.each(thisCart.items, function(cartIndex, cartElement) {
      if(~cartElement.title.indexOf('Build your own box')) {
        formData.updates[parseInt(cartElement.variant_id)] = 0;
      }
    });
  });
  jQuery.ajax({
    type: 'POST',
    url: '/cart/update.js',
    //         data: { updates: {40066070315190: 0, 40067491528886: 0, 40094075945142: 0} },
    data: formData,
    dataType: 'json',
    success: function(data) {
      console.log('success', data);
    },
    error: function (request, status, error) {
      alert(request.responseText);
    }
  });

还附加了参考的 console.log 输出 CLICK TO SEE THE CONSOLE.LOG OUTPUT

【问题讨论】:

    标签: jquery ajax api shopify liquid


    【解决方案1】:

    请检查,在调用 /cart/update.js API 之前,您在 formData 中获取数据。当您调用两个 API 时,您需要等到第一个 API 进程并提供 formData。

    【讨论】:

    • 哦,完美!!!我只是按照您的建议尝试了 3 秒的超时时间进行测试,代码如下: setTimeout(function(){ ajax function....}, 3000);你能告诉我如何更好吗?
    • 我能够使用 .then 实现这一点:jQuery.getJSON('/cart.js', function(thisCart, textStatus) { $.each(thisCart.items, function(cartIndex, cartElement) { if(~cartElement.title.indexOf('构建你自己的盒子')) { formData.updates[parseInt(cartElement.variant_id)] = 0; } }); }).done(function() { //ajax 函数});
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-07
    • 2021-06-04
    • 2022-01-24
    • 2015-05-11
    • 2020-05-15
    • 2014-10-31
    • 2018-02-12
    相关资源
    最近更新 更多