Yagi discounted price modification

This commit is contained in:
Axel Kee
2026-07-02 17:54:13 +08:00
parent 2115f7b08c
commit 6ef0445571
2 changed files with 145 additions and 4 deletions
+98
View File
@@ -26,6 +26,104 @@
assign price_min = product.price_min
assign price_max = product.price_max
assign available = target.available | default: false
comment
start Yagi app code
endcomment
assign public_or_tags_matched = true
if product.metafields.app--168074346497.segment_tags.value.size > 0
assign public_or_tags_matched = false
endif
for etag in product.metafields.app--168074346497.segment_tags.value
if customer.tags contains etag
assign public_or_tags_matched = true
break
endif
endfor
if public_or_tags_matched
if use_variant
assign price = target.metafields.app--168074346497.auto_discounted_price.value | default: target.price
if target.metafields.app--168074346497.discount_type.value != nil and target.metafields.app--168074346497.discount_type.value != "fixed" and product.metafields.app--168074346497.discount_percentage.value > 0.01
assign deducted_percentage = 1.0 | minus: product.metafields.app--168074346497.discount_percentage.value
if target.metafields.app--168074346497.discount_percentage.value > 0.01
assign deducted_percentage = 1.0 | minus: target.metafields.app--168074346497.discount_percentage.value
endif
assign price = target.price | divided_by: 100.0 | times: deducted_percentage | times: 100.0 | ceil
assign price_min = price
assign price_max = product.price_max | divided_by: 100.0 | times: deducted_percentage | times: 100.0 | ceil
assign compare_at_price = target.price
if target.compare_at_price > compare_at_price
assign compare_at_price = target.compare_at_price
endif
endif
if shop.metafields.app--168074346497.discount_percentage.value > 0.005
assign discount_percentage = shop.metafields.app--168074346497.discount_percentage.value | times: 1.0
assign deducted_percentage = 1.0 | minus: discount_percentage
assign price = target.price | divided_by: 100.0 | times: deducted_percentage | times: 100.0 | ceil
assign price_min = price
assign price_max = product.price_max | divided_by: 100.0 | times: deducted_percentage | times: 100.0 | ceil
assign compare_at_price = target.price
if target.compare_at_price > compare_at_price
assign compare_at_price = target.compare_at_price
endif
endif
if price < target.price and compare_at_price == blank
assign compare_at_price = target.price
endif
else
assign price = product.metafields.app--168074346497.min_auto_discounted_price.value | default: product.price
if product.metafields.app--168074346497.discount_percentage.value > 0.01
assign deducted_percentage = 1.0 | minus: product.metafields.app--168074346497.discount_percentage.value
assign price = product.price | divided_by: 100.0 | times: deducted_percentage | times: 100.0 | ceil
assign price_min = price
assign price_max = product.price_max | divided_by: 100.0 | times: deducted_percentage | times: 100.0 | ceil
assign compare_at_price = product.price
if product.compare_at_price > compare_at_price
assign compare_at_price = product.compare_at_price
endif
endif
if shop.metafields.app--168074346497.discount_percentage.value > 0.005
assign discount_percentage = shop.metafields.app--168074346497.discount_percentage.value | times: 1.0
assign deducted_percentage = 1.0 | minus: discount_percentage
assign price = product.price | divided_by: 100.0 | times: deducted_percentage | times: 100.0 | ceil
assign price_min = price
assign price_max = product.price_max | divided_by: 100.0 | times: deducted_percentage | times: 100.0 | ceil
assign compare_at_price = product.price
if product.compare_at_price > compare_at_price
assign compare_at_price = product.compare_at_price
endif
endif
if price < product.price and compare_at_price == blank
assign compare_at_price = product.price
endif
endif
endif
comment
end Yagi app code
endcomment
assign money_price = price | money
assign money_price_min = price_min | money
assign money_price_max = price_max | money