Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 某些产品shopify脚本的阻止折扣_Ruby_Shopify - Fatal编程技术网

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

Ruby 某些产品shopify脚本的阻止折扣,ruby,shopify,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 我查看了,看到了

我想在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

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

折扣很容易。第一。。。从购物车中获取折扣代码。你知道它适用于整个购物车。现在你有了一个金额,或者百分比,或者你在代码中给客户的任何东西。现在,我们来看看剧本的美妙之处

对于每种产品,决定是否打折。如果是,则应用从提供给该项目的折扣代码中知道的折扣金额。如果这是一种不打折的产品,那就别管价格了

你为脚本引擎付出了巨大的代价。如果你不能自己编程,请付钱给能自己编程的人!你最好学习一个工作脚本来学习,那就是试图超越自己


因此,您实际上可以拒绝购物车的折扣代码,但仍然可以折扣产品,包括一些、不是全部或其他产品。

老问题,但我找到了一个解决方案:基本上,您不能将折扣“本地化”到特定产品。你必须阻止整个购物车获得折扣。我最终采取的方法如下:

# 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

这并没有完全回答我的问题-我想将
.reject({message:String})
本地化为单个产品,但仍将折扣应用于购物车中的其他项目(如果适用)。这可能吗?唯一的@DavidLazar everyone;为了您的阅读乐趣;)我猜你现在也在努力写剧本。