Access a community of over 900,000 Shopify Merchants and Partners and engage in meaningful conversations with your peers.
Hi, I'm running Ruby script in checkout page to apply discount based on customer tag.
it seems to work fine, but shows Production errors : `Runtime Error`
It says like this.
RuntimeError undefined method '/' for #<Money: "96$">
Money value is being changed whenever this error happens.
I'd love to share some code piece here.
class PercentageDiscount def initialize(percent, message) @discount = (100 - percent) / 100.0 @message = message end def apply(line_item) # changed_amount = line_item.original_line_price - line_item.line_price # discounted_price = line_item.original_line_price * @discount # if changed_amount != Money.new(cents: 0) # discounted_price = discounted_price - changed_amount # end # line_item.change_line_price(discounted_price, message: @message) if line_item.properties.length == 0 line_item.change_line_price(line_item.line_price * @discount, message: @message) else is_subscribe = false line_item.properties.each do |property| if ( 1 == property.count { |x| x == "shipping_interval_frequency" } ) is_subscribe = true break end end if is_subscribe @discount = 100 - @discount * 100 if @discount > 10 discounted_price = ((line_item.line_price / 9.0) * 10 * (100 - @discount)) / 100.0 line_item.change_line_price(discounted_price, message: @message) end end end end end
It's really hard to find out it because I can't reproduce it in duplicated Script.
Hope to hear from Shopify experts soon.
All the best.
Thanks.
User | RANK |
---|---|
3 | |
2 | |
2 | |
1 | |
1 |