【问题标题】:Shopify script — discount on Bulk Purchase for specific tagsShopify 脚本 — 特定标签的批量购买折扣
【发布时间】: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 个项目都有合格的标签

标签: ruby shopify


【解决方案1】:

问题是您要对所有 line_items 计算 items_quantities_total,而不仅仅是在 "outerwear" 上计算。

要修复它,您可以调整线条

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

过滤"outerwear"标签。

【讨论】:

  • 太好了,谢谢你。我一直试图在 IF 语句中对其进行调整,但无济于事。很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多