Personalized checkout and custom promotions with Shopify Scripts
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.
Connect your PayPal account to allow your customers to checkout using the PayPal gateway a...
ByYour online store speed can enhance your store’s discoverability, boost conversion rates a...
ByShopping is at our fingertips with mobile devices. Is your theme optimized to be user-frie...
By