Я создаю способ добавить все товары из коллекции Shopify в корзину для продажи комплектов.
У меня есть скрипт JavaScript, который определяет, какой уровень набора выбран, и проходит через каждый продукт в коллекции. Несколько продуктов в комплекте мы хотим добавить более одного раза, и они контролируются тегом basicbundleqty: x. Таким образом, код перебирает теги для каждого продукта, проверяет этот тег, и если он есть, то для qty устанавливается суффикс тега.
<script>
var selected = "not selected";
function kitSelect(){
selected = document.getElementById('select').value;
/*if(selected == "not selected"){
alert('Please select a kit level');
}
if(selected == "basic"){
alert('basic');
}
if(selected == "standard"){
alert('standard');
}
if(selected == "pro"){
alert('pro');
}*/
}
function addBundle(){
var qty = 0;
if(selected == "basic"){
{% for kitproduct in collections['Basic-Fixture-Plate-Starter-Kit'].products %}
qty = 1;
{% for t in kitproduct.tags %}
{% if t contains 'basicqty:' %}
{% assign qty = t | remove: 'basicqty:'%}
{% assign qty = qty | plus: 0 %}
qty = {{ qty | json }};
{% endif %}
{% endfor %}
jQuery.post('/cart/add.js', {
quantity: qty,
id: {{ kitproduct.variants[0].id }},
properties: {
}
});
alert(qty);
{% endfor %}
} else {
alert("Please select a kit level first");
}
window.location.reload(false);
}
</script>
Этот метод делает работа, с одной причудой. без строки alert(qty);
в конце для l oop код не работает. Если этого предупреждения нет, код, по-видимому, случайным образом добавляет только один или два продукта сбора.
Почему это работает только с функцией alert()
, и есть ли исправление, которое позволит этому добавить их все в корзину одним кликом и не требовать, чтобы пользователь просматривал каждое окно предупреждения?