Shopify is deprecating Checkout Scripts! Inteligems highly recommends using functions instead.
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