Сценарий Shopify - скидка на оптовую покупку для определенных тегов - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь создать скрипт со скидкой 25% при добавлении в корзину 15 товаров с тегом "верхняя одежда".

Скрипт просматривает корзину для количества, сохраненного в items_quantities_total, но это не проверяетчто все эти 15 товаров в корзине имеют соответствующий тег.


Input.cart.line_items.each_with_index do |line_item, index|

  MIN_QTY_IN_CART_15 = 15
  items_quantities = Input.cart&.line_items&.map { |item| item.quantity }
  items_quantities_total = items_quantities.reduce(0, :+)

  discountCollectionPriceBasis = line_item.line_price_was
  if line_item.variant.compare_at_price
    discountCollectionPriceBasis = line_item.variant.compare_at_price * line_item.quantity
  end

  discountCollectionPrice = discountCollectionPriceBasis * 0.75
  if discountCollectionPrice < line_item.line_price 
    unless line_item.line_price_was < discountCollectionPrice
      if line_item.variant.product.tags.include?('outerwear')
        if items_quantities_total >= MIN_QTY_IN_CART_15
          line_item.change_line_price(discountCollectionPrice, message: "Buy 15 outerwear items and get 25% Off!")
        end
      end
    end
  end

end

Примером результата является то, что в настоящее время он работает, даже если у меня 14 товаров, не включенных в мою скидку на верхнюю одежду, и только 1 изпредполагаемая скидка.Затем применяется скидка 25% на этот предмет.

1 Ответ

0 голосов
/ 03 мая 2019

Проблема в том, что вы вычисляете items_quantities_total на всех line_items, а не только на "outerwear".

Чтобы исправить это, вы можете настроить строку

  items_quantities = Input.cart&.line_items&.map { |item| item.quantity }

для фильтрации по тегу "outerwear".

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