Shopify脚本-批量购买特定标签可享受折扣

时间:2019-05-03 06:06:17

标签: ruby shopify

当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%。

1 个答案:

答案 0 :(得分:0)

问题是您不仅对items_quantities_total的所有line_items计算"outerwear"

要解决此问题,您可以调整线条

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

过滤"outerwear"标签。