Shopify 没有成功 jquery POST

Shopify not succeeding on all jquery POST

我的 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 限制吗?

jQuery.post 是异步的,因此您需要等待第一个 post 到 return,然后再 post 下一个变体。例如:

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');
});