Shopify AJAX - обновить общую стоимость позиции - PullRequest
0 голосов
/ 25 июня 2018

Я узнал, как изменить количество товаров с помощью AJAX на странице корзины, и я также нашел, как обновить общую сумму корзины с помощью AJAX.

Что я не нашел, так это какобновите общую цену позиции для каждой позиции по мере увеличения или уменьшения количества.

Вот код, который у меня есть (не работает) ...

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

Любые советыо том, что не так с моим кодом?

Кроме того, это можно нажать на кнопку, если это поможет.

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Вы получаете «корзину» из /cart.js, но не читаете никаких его данных.

Вам нужно будет прочитать объект корзины (который будет представлен в виде магазина "Корзина" объект ) в вашем javascript.Я вижу, что вы пытаетесь получить "item.id" и "item.line_price", но нет связи с предметом и объектом корзины.Вы также не можете использовать жидкость на этом этапе, так как это уже будет передано клиенту ...

Вам, вероятно, нужно сделать что-то похожее на:

jQuery.getJSON('/cart.js', function(cart) { cart.items.each($('#line-total-'+this.id).html(Shopify.formatMoney(this.line_price).replace('$','£')););});
0 голосов
/ 25 июня 2018

Ваш код включает в себя:

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

Выше не будет работать, так как {{ item.id }} на жидкой основе попадет на страницу один раз, а потом никогда не изменится.(Скорее всего, приведенный выше код был включен в место, где не было переменной Liquid с именем item в области видимости, поэтому визуализированный Javascript просто прочитал бы $('#line-total-')

. Вам нужно будет использовать Javascriptcart объект, который передается вашей функции. Например:

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('$','£'))})
  }
})

Надеюсь, это поможет!

...