Shopify - Как обновить цену продукта при обновлении
Я пытался найти лучший способ добавить бесплатный продукт в корзину в Shopify, но не могу найти то, что ищу, в их документации.
Что мне нужно сделать, так это добавить товар в корзину, если стоимость корзины составляет 10 фунтов стерлингов или больше. Мне удалось добавить товар, но как я могу изменить цену на ноль? Кроме того, как я могу гарантировать, что, если пользователь выберет большее количество товара, он не получит несколько бесплатных товаров, а получит только один бесплатный товар? Надеюсь, это имеет смысл.
Вот то, что у меня есть, что действительно хорошо работает, чтобы добавить продукт. Но не меняет цену.
* РЕДАКТИРОВАТЬ: Я понимаю, что если я не могу изменить цену товара, могу ли я применить фиксированный код скидки на уровне страницы корзины?
** РЕДАКТИРОВАТЬ: Если подумать, код скидки все равно не сработает, потому что пользователь может легко удалить бесплатный продукт и все равно получить скидку. Возможно, мне нужно создать какой-то скрытый продукт, который нельзя найти в магазине, добавить его в корзину и отключить селектор количества.
Должен быть способ сделать это, потому что есть приложения, которые могут это сделать.
** Я не хочу использовать приложение
<script>
$(".cart__qty-input").blur(function() {
location.reload();
})(jQuery);
</script>
{% assign product = all_products['free-gift'] %}
{% unless cart.item_count == 0 or product.empty? or product.variants.first.available == false %}
{% if cart.total_price >= 1000 %}
{% assign variant_id = product.variants.first.id %}
<script>
(function($) {
var cartItems = {{ cart.items | json }},
qtyInTheCart = 0,
cartUpdates = {};
for (var i=0; i<cartItems.length; i++) {
if ( cartItems[i].id === {{ variant_id }} ) {
qtyInTheCart = cartItems[i].quantity;
break;
}
}
if ( ( cartItems.length === 1 ) && ( qtyInTheCart > 0 ) ) {
cartUpdates = { {{ variant_id }}: 0 }
}
else if ( ( cartItems.length >= 1 ) && ( qtyInTheCart !== 1 ) ) {
cartUpdates = { {{ variant_id }}: 1 }
}
else {
return;
}
var params = {
type: 'POST',
url: '/cart/update.js',
data: { updates: cartUpdates },
dataType: 'json',
success: function(stuff) {
window.location.href = '/cart';
}
};
$.ajax(params);
})(jQuery);
</script>
{% endif %}
{% endunless %}
1 ответ
Вы можете добиться этого, используя стандартные функции Shopify.
Создайте коллекцию, в которую войдут все товары, кроме подарочного.
Создайте автоматическую скидку, используя следующую конфигурацию:
- Тип: Купить X получить Y
Клиент тратит: минимальная сумма покупки
- Сумма: 10 фунтов стерлингов
- Любые предметы для: определенных коллекций
- Найдите и добавьте коллекцию, которую вы создали на 1-м шаге
Заказчик получает:
- Количество: 1
- Любые предметы из: Конкретные товары
- Найдите и добавьте продукт, который хотите использовать в качестве подарка (тот, который не принадлежит к коллекции, созданной на 1-м шаге)
- Со скидкой: бесплатно
- Установите максимальное количество использований на заказ: включите его и установите значение 1
Вышеуказанное должно соответствовать вашей спецификации.
Затем вы по-прежнему можете использовать уже созданные сценарии для автоматического добавления / удаления подарочного продукта в корзину на основе общего количества корзины (если это необходимо). Если покупатель изменит количество подарочного продукта на 2 или более, он получит его по стандартной цене, указанной в Shopify. Если корзина соответствует критериям, скидка будет только на один подарочный товар.