【发布时间】:2019-05-03 06:06:17
【问题描述】:
我正在尝试创建一个脚本,以便在将 15 件标记为“外套”的商品添加到购物车时享受 25% 的折扣。
脚本循环遍历购物车中存储在 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% 的折扣。
【问题讨论】:
-
您的问题是什么?你的代码有问题吗?意想不到的结果?出错了?
-
是的,出乎意料的结果。该代码包括不带合格变体标签的商品,作为购物车最少 15 件商品的一部分。我希望我可以检查这 15 个项目都有合格的标签