Add discount price calculation

This commit is contained in:
Axel Kee
2025-08-29 15:39:06 +08:00
parent 60dfabd747
commit 293566f1b4

View File

@@ -123,7 +123,19 @@ Supported variables
{%- if show_prices and product.template_suffix != 'quote' -%}
<div class="product-price">
{{ product.selected_or_first_available_variant.price | money }}
{% assign v = product.selected_or_first_available_variant %}
{% assign variant_price = product.selected_or_first_available_variant.price %}
{% if v.metafields.app--168074346497.discount_type.value != nil and v.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 v.metafields.app--168074346497.discount_percentage.value > 0.01 %}
{% assign deducted_percentage = 1.0 | minus: v.metafields.app--168074346497.discount_percentage.value %}
{% endif %}
{% assign variant_price = v.price | divided_by: 100.0 | times: deducted_percentage | times: 100.0 | ceil %}
{% endif %}
{{ variant_price | money }}
</div>
{%- endif -%}
</div>
@@ -277,11 +289,16 @@ Supported variables
// Update hidden input with the correct variant ID
$('#selected-variant-id-{{ product.id }}').val(selectedVariant.id);
{% assign deducted_percentage = 1.0 %}
{% if product.metafields.app--168074346497.discount_percentage.value > 0.01 %}
{% assign deducted_percentage = 1.0 | minus: product.metafields.app--168074346497.discount_percentage.value %}
{% endif %}
// Update displayed price
let locale = Shopify.locale;
let currency = Shopify.currency.active;
let country = Shopify.country;
let amount = new Intl.NumberFormat(`${locale}-${country}`, { style: "currency", currency: currency }).format(selectedVariant.price / 100 );
let amount = new Intl.NumberFormat(`${locale}-${country}`, { style: "currency", currency: currency }).format(selectedVariant.price / 100 * {{ deducted_percentage }});
$(this).find('.product-price').text(amount);
} else {
console.log('No matching variant found for the selected options.');