Update ATC Events
Add useIgCart()
or useIgCheckout()
Hook
useIgCart()
or useIgCheckout()
HookUse the
useIgCart()
hook if your site uses the Storefront Cart APIUse the
useIgCheckout()
hook if your site uses the Storefront Checkout API
Add Intelligems Script to checkout.liquid
checkout.liquid
The Intelligems script may be found under settings at app.intelligems.io. Copy this script tag and add it to the header of 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
Last updated