Я пытаюсь создать скрипт со скидкой 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% на этот предмет.