Для прозрачности: это точная копия запроса, который я сделал на форуме Shopify, но мне там не помогли (за исключением дорогостоящего предложения по решению проблемы ...).
У меня есть магазин Shopify, который использует всплывающую корзину перед оформлением заказа. Я использую следующий код во всплывающей корзине, чтобы клиенты могли увеличивать или уменьшать количество товаров в корзине:
<div class="input-group m-0">
<input type="button" value="-" class="button-minus" data-field="quantity">
<input id="{{ item.variant.id }}" type="number" step="1" max="" value="{{ item.quantity }}" name="quantity" class="quantity-field">
<input type="button" value="+" class="button-plus" data-field="quantity" onclick="Shopify.addItem({{ item.variant.id }}, 1)">
</div>
Как вы могли заметить, я использую функцию Shopify.addItem (), когда запускается onclick, чтобы увеличить количество товаров в корзине. Эта функция действительно работает. К сожалению, я не нашел никакой функции для уменьшения количества на 1. Поэтому я написал немного JavaScript, но, к сожалению, он не работает. Найдите здесь код:
$('.input-group').on('click', '.button-minus', function(e) {
e.preventDefault();
var fieldName = $(e.target).data('field');
var parent = $(e.target).closest('div');
var currentVal = parseInt(parent.find('input[name=' + fieldName + ']').val(), 10);
var currentVariant = parseInt(parent.find('input[name=' + fieldName + ']').attr('id'), 10);
jQuery.post('/cart/change.js', { quantity: currentVal - 1, id: currentVariant });
});