Shopify - Как обновить цену продукта при обновлении - PullRequest
0 голосов
/ 06 мая 2020

Я пытался найти лучший способ добавить бесплатный продукт в корзину в 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 Ответ

0 голосов
/ 07 мая 2020

Вы можете добиться этого, используя стандартные функции Shopify.

  1. Создайте коллекцию, содержащую все товары, кроме подарочного.

  2. Создать автоматическая c скидка с использованием следующей конфигурации:

    • Тип: Купить X получить Y
    • Расходы клиента: Минимальная сумма покупки

      • Сумма: 10 фунтов стерлингов
      • Любые предметы для: Specifi c коллекций
      • Поиск и добавьте коллекцию, созданную вами на 1-м шаге
    • Клиент получает:

      • Количество: 1
      • Любые предметы из: Specifi c продуктов
      • Найдите и добавьте продукт, который хотите использовать в качестве подарка (тот, который не принадлежит коллекции, созданной в 1-м step)
      • Со скидкой: Бесплатно
      • Установите максимальное количество использований для заказа: включите и установите значение 1

Вышеуказанное должно соответствовать вашим характеристикам.

После этого вы по-прежнему можете использовать уже созданные сценарии для автоматического добавления / удаления подарочного продукта в корзину на основе общей суммы корзины (если это необходимо). Если покупатель изменит количество подарочного продукта на 2 или более, он получит его по стандартной цене, указанной в Shopify. Если корзина соответствует критериям, скидка будет только на один подарочный товар.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...