Shopify在所有jquery POST上都没有成功

时间:2016-01-10 00:50:45

标签: jquery post shopify

我的Shopify网站上有一个cookie,用于存储将在页面加载时添加到购物车的变体ID:

var mmuUserCart = [
  '10672503748',
  '10672622148'
];

$.cookie('mmu-cart', mmuUserCart, {expires: 10});

function readCookie(handle) {
  var cookieData = $.cookie(handle);
  cookieData = cookieData.split(',');

  if (cookieData) {
    if (cookieData.length > 0) {
      for (i = 0; i < cookieData.length; i++) { 
        console.log(cookieData[i]);

        jQuery.post('/cart/add.js', {
          quantity: 1,
          id: cookieData[i]
        });

        //           .fail( function(xhr, textStatus, errorThrown) {
        //               console.log(textStatus);
        //           });
      }
    }
  }
}

$(document).ready(function() {
  readCookie('mmu-cart');
});

但它只发布其中一个项目(随机),有时发布两个项目。但这是一个1/20的机会,它增加了购物车。没有错误消息。这两个项目都有充足的库存。 Shopify是否有post限制?

1 个答案:

答案 0 :(得分:1)

jQuery.post是asynch所以你需要在发布下一个变种之前等待第一篇文章返回。 e.g:

var mmuUserCart = [
  '10672503748',
  '10672622148'
];

$.cookie('mmu-cart', mmuUserCart, {expires: 10});

function readCookie(handle) {
  var cookieData = $.cookie(handle);
  cookieData = cookieData.split(',');

  if (cookieData) {
      function postVariant(){
        if(!cookieData.length) {
          //update any displayed cart ?;
          return;
        }
        var variantId = cookieData.shift();
        console.log(variantId);

        $.post('/cart/add.js', {
          quantity: 1,
          id: variantId
        }).done(postVariant);

      }
      postVariant();

    }
}

$(document).ready(function() {
  readCookie('mmu-cart');
});