某些产品shopify脚本的阻止折扣

时间:2017-02-15 15:29:46

标签: ruby shopify

我想在Shopify中编写一个脚本,以防止在特定产品上呈现折扣。我知道这是错的,但是这样的话:

Input.cart.line_items.each do |line_item|
  product = line_item.variant.product

  if product = 123456789
     CartDiscount.remove("Discount does not apply")
  end

end

Output.cart = Input.cart

我查看了documentation并看到了.reject({ message: String })方法,但它适用于整个购物车。有没有办法将其本地化为一个实例?

2 个答案:

答案 0 :(得分:0)

旧问题,但我找到了一个解决方案:基本上,你可以"定位"特定产品的折扣。你必须阻止整个购物车获得折扣。我最终采取的方法如下:

# ID of product you want to block
productId = 10199241991

# Runs through a loop of items in your cart
Input.cart.line_items.each do |line_item|
  product = line_item.variant.product
  puts product.id
  next if product.gift_card?
  next unless product.id == productId
  case Input.cart.discount_code
  when CartDiscount::Percentage
    Input.cart.discount_code.reject({message: "Cannot be used with this product"})
  end
end


Output.cart = Input.cart

答案 1 :(得分:-1)

折扣很简单。首先......从购物车中获取折扣代码。你知道它适用于整个购物车。现在,您有一个数量,百分比或您在代码中给客户的任何内容。现在踢脚本的美丽。

对于每种产品,确定它是否打折。如果是,请从提供给项目的折扣代码中应用您知道的折扣金额。如果它是不打折的产品,请保持价格。

你为脚本引擎付出了巨大的代价。如果你不能自己编程,付钱就可以!你最好学习一个工作脚本来学习,试图自己动手。

所以你实际上可以拒绝购物车的折扣代码,但仍然会折扣产品,有些产品,而不是全部或其他产品。