Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save peterberwind/f7404e07292cd5787b6e29f0c9998046 to your computer and use it in GitHub Desktop.
Save peterberwind/f7404e07292cd5787b6e29f0c9998046 to your computer and use it in GitHub Desktop.
Buy X quantity of a product, Get $Y off
DISCOUNTS_BY_QUANTITY = {
10_000 => 20,
1_000 => 15,
100 => 10,
10 => 5,
}
Input.cart.line_items.each do |line_item|
next if line_item.variant.product.gift_card?
quantity, discount = DISCOUNTS_BY_QUANTITY.find do |quantity, _|
line_item.quantity >= quantity
end
next unless discount
message = "$#{discount} off when buying at least #{quantity}."
line_item.change_line_price(
line_item.line_price - (Money.new(cents:100) * discount),
message: message,
)
end
Output.cart = Input.cart
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment