Shopify AJAX-更新订单项的总价

时间:2018-06-25 18:57:56

标签: ajax shopify

我已经在购物车页面上找到了如何通过AJAX更改商品数量的方法,并且还找到了如何通过AJAX更新购物车总数的方法。

我还没有发现如何在增加或减少数量时更新每个订单项的总价格。

这是我到目前为止的代码(无法正常工作)...

jQuery.getJSON('/cart.js', function(cart) { $('#line-total-{{ item.id }}').html(Shopify.formatMoney(item.line_price).replace('$','£'))})

关于我的代码有什么问题的任何提示吗?

如果有帮助,也可以单击按钮。

2 个答案:

答案 0 :(得分:2)

您的代码包括:

jQuery.getJSON('/cart.js', function(cart) { 
  $('#line-total-{{ item.id  }}').html(Shopify.formatMoney(item.line_price).replace('$','£'))})

以上内容将不起作用,因为基于Liquid的{{ item.id }}会被放到页面中一次,以后再也不会更改。 (最有可能的是,上面的代码包含在范围内没有名为item的Liquid变量的地方,因此渲染的Javascript只需读取$('#line-total-')

您将需要使用赋予函数的Javascript cart对象。例如:

jQuery.getJSON('/cart.js', function(cart) { 
  for(var i=0; i<cart.items.length; i++){
    var item = cart.items[i];
    var price_element = $('#line-total-' + item.id)
    price_element.html(Shopify.formatMoney(item.line_price).replace('$','£'))})
  }
})

希望这会有所帮助!

答案 1 :(得分:0)

您从/cart.js返回了“购物车”,但没有读取其任何数据。

您将需要在JavaScript中通读购物车对象(将其表示为shopify "Cart" object)。我看到您正在尝试获取“ item.id”和“ item.line_price”,但与商品和购物车对象没有关系。此时您也不能使用液体,因为液体已经呈现给客户了。

您可能需要执行以下操作:

patsy