Personalized checkout and custom promotions with Shopify Scripts
Hey Shopify community! I've written a simple script in Shipping script of script-editor. Based on some conditions we're offering free shipping. The issue is the script runs successfully, but when I update my cart using checkoutLineItemsReplace, then the cart is not getting updated. When I disable the script, then everything works as normal. Here's a script for reference:
# frozen_string_literal: true
CASHMERE_ITEMS = [2_067_473_662_063, 2_067_474_022_511, 4_340_428_636_271, 3_973_103_976_559, 4_344_866_209_903, 4_340_500_070_511,
4_340_364_640_367, 4_340_456_063_087, 4_350_209_097_839, 4_340_463_173_743, 4_367_579_709_551, 3_973_094_506_607,
4_340_400_128_111, 3_973_086_642_287, 3_974_863_290_479, 4_353_808_466_031].freeze
NO_OF_CASHMERE_APPAREL = 0
puts(Input.cart.discount_code)
Input.cart.line_items.each do |line_item|
next unless CASHMERE_ITEMS.include? line_item.variant.product.id
NO_OF_CASHMERE_APPAREL += line_item.quantity
end
ELIGIBLE_SERVICES = ['LB_SUPER'].freeze
# give them free shipping on the defined services.
if (NO_OF_CASHMERE_APPAREL >= 4)
Input.shipping_rates.each do |shipping_rate|
if ELIGIBLE_SERVICES.include?(shipping_rate.code)
shipping_rate.apply_discount(shipping_rate.price, message: 'Free Express shipping!')
end
end
end
# Export the rates.
Output.shipping_rates = Input.shipping_rates
Please let us know if we're missing out on some trivial/key concept here.
Learn these 5 things I had to learn the hard way with starting and running my own business
By Kitana Jan 27, 2023Would you love to unleash the unbridled power of the Google Shopping Channel into your sho...
By Gabe Jan 6, 2023How can you turn a hobby into a career? That’s what Emmanuel did while working as a wa...
By Skye Dec 30, 2022