使用ajax在shopify中未更新购物车数据

时间:2018-11-29 13:52:03

标签: javascript jquery shopify shopify-template

我在Shopify中遇到问题。

我想使用ajax在单击按钮时更新购物车数量,但会出现类似错误

  

{“状态”:404,“消息”:“购物车错误”,“描述”:“找不到变体”}

这是我的ajax代码,

SELECT * FROM table_name WHERE `col1` = `col2` AND `col1` = a;

目前两个变量值都来了,所以值没有任何错误。

  

但是当id添加如下代码时:

 $('.adjust-plus').click(function(){
    var qty = $(this).parent('.button-wrapper').siblings('.input-wrapper').children('.quantity').val();
    var varient = $(this).parent('.button-wrapper').siblings('.input-wrapper').children('.quantity').attr('data-id');

    jQuery.ajax({
      type: 'POST',
      async: false,
      url: '/cart/update.js',
      data: { updates: { varient : qty } },
      dataType: 'json',
      success: function() { location.href = '/cart'; }
   });
 });

然后购物车更新成功。

1 个答案:

答案 0 :(得分:0)

首先,请删除async: false,因为这是非常不好的做法,在这里您不需要使用,因为您可以正确使用success回调。

问题本身是因为您无法使用所使用的语法将变量用作对象的键。为了解决这个问题,您可以使用方括号表示法,例如:

$('.adjust-plus').click(function() {
  var $quantity = $(this).parent('.button-wrapper').siblings('.input-wrapper').children('.quantity');
  var qty = $quantity.val();
  var varient = $quantity.data('id');

  var data = { updates: {} };
  data.updates[varient] = qty;

  jQuery.ajax({
    type: 'POST',
    url: '/cart/update.js',
    data: data,
    dataType: 'json',
    success: function() { 
      location.href = '/cart'; 
    }
  });
});

有几件奇怪的事情