Liquid, JavaScript, themes, sales channels
Hello,
I am running script base discount which is applying on selected variants_id. i am trying to prevent the discount code apply on variants (mention in script), so that already discounted variants not get another discount. for this is i set key property for line_items when applying discount. which set successfully. i can see key value in cart page.
however when I run my code (which check each lime_item if match with key value then reject the discount code) is fail to execute. its seems not find lime_item key, but key is there. here is my code
this is the code where I am setting line item key , and it set successfully , I can see in cart page
class DiscountApplicator
def initialize(discount_type, discount_amount, discount_message)
@discount_type = discount_type
@discount_message = discount_message
@discount_amount = if discount_type == :percent
1 - (discount_amount * 0.01)
else
Money.new(cents: 100) * discount_amount
end
end
def apply(line_item)
new_line_price = if @discount_type == :percent
line_item.line_price * @discount_amount
else
[line_item.line_price - (@discount_amount * line_item.quantity), Money.zero].max
end
line_item.change_line_price(new_line_price, message: @discount_message)
line_item.change_properties({
'key' => '_saleitem'
},{ message: 'Updated value' })
end
end
and below is the code where I am checking if key value _saleitem found, then stop executing discount code.
CART_REJECTION_MESSAGE = "Cannot Use Discount Code on Sale Items"
product=''
condition_is_met = false
if Input.cart.discount_code != nil
Input.cart.line_items.each do |line_item|
product = line_item.properties
if product.key?('_saleitem')
condition_is_met = true
end
end
end
if condition_is_met
Input.cart.discount_code.reject({
message: CART_REJECTION_MESSAGE
})
end
the issue is "condition_is_met = true" is not executing even key exists (_saleitem) which I can see in cart page as well. any idea what is wrong ? your help will be appreciated.
Portrait of Stephen positioned next to an image of planet Earth, with the Stephen's World ...
By JasonH Mar 18, 2024Digital marketers and app developers have tracked activity in apps and websites for yea...
By Ollie Mar 13, 2024February was an exciting month with Shopify Editions, informative webinars, and more! F...
By JasonH Mar 7, 2024