Add Intelligems Script to checkout.liquid
Add Intelligems Checkout Script to Script Editor
Add the following script to your Script Editor app as a Line Item discount.
class Intelligems
def initialize(discount_property = '_igp', allow_free = false)
@volume_discount_property = '_igvd'
@volume_discount_message_property = '_igvd_message'
@depreciated_property = '_igLineItemDiscount'
@discount_property = discount_property
@allow_free = allow_free
end
def discount_product(line_item)
ig_price = Money.new(cents: line_item.properties[@discount_property])
discount = line_item.line_price - ig_price
if discount > Money.zero
discount *= line_item.quantity
line_item.change_line_price(line_item.line_price - discount, message: 'Discount')
end
end
def depreciated_discount_product(line_item)
discount = Money.new(cents: line_item.properties[@depreciated_property])
discount *= line_item.quantity
if @allow_free or discount < line_item.line_price
line_item.change_line_price(line_item.line_price - discount, message: 'Intelligems')
end
end
def volume_discount(line_item)
discount = Money.new(cents: line_item.properties[@volume_discount_property])
discount *= line_item.quantity
if discount < line_item.line_price
message = line_item.properties[@volume_discount_message_property]
line_item.change_line_price(line_item.line_price - discount, message: message)
end
end
def run(cart)
cart.line_items.each do |line_item|
if !line_item.properties[@discount_property].nil? && !line_item.properties[@discount_property].empty?
discount_product(line_item)
elsif !line_item.properties[@volume_discount_property].nil? && !line_item.properties[@volume_discount_property].empty?
volume_discount(line_item)
elsif !line_item.properties[@depreciated_property].nil? && !line_item.properties[@depreciated_property].empty?
depreciated_discount_product(line_item)
end
end
end
end
intelligems = Intelligems.new()
intelligems.run(Input.cart)
Output.cart = Input.cart