{% comment %} Renders a list of product's price (regular, sale) Accepts: - product: {Object} Product Liquid object (optional) - is_product_card {Boolean} Only needed when uncommenting the 'from' price code below to display the cheapest available variant(optional) - use_variant: {Boolean} Renders selected or first variant price instead of overall product pricing (optional) - price_class: {String} Adds a price class to the price element (optional) - show_compare_at_price: {Boolean} Renders the compare at price if the product matches the condition (optional) - sale_color: {Object} Theme color setting. Optional. Usage: {% render 'price', product: product %} {% endcomment %} {%- liquid if use_variant assign target = product.selected_or_first_available_variant else assign target = product endif assign show_price = true if product.template_suffix contains 'enquire' and settings.card_show_enquiry_prices == false assign show_price = false elsif target.price == 0 and settings.card_show_zero_prices == false assign show_price = false endif -%} {% if show_price %} {%- liquid assign compare_at_price = target.compare_at_price assign price = target.price | default: 1999 assign price_min = product.price_min assign price_max = product.price_max assign available = target.available | default: false comment start Yagi app code endcomment 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 == 0 or 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 == 0 or compare_at_price == blank assign compare_at_price = product.price 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 if settings.currency_code_enabled assign money_price = price | money_with_currency assign money_price_min = price_min | money_with_currency assign money_price_max = price_max | money_with_currency endif if target == product and product.price_varies assign from_money = money_price # Make the 'from' price be the cheapest AVAILABLE variant if is_product_card and settings.card_include_unavailable_variants_in_sale_price != true assign min_available_price = blank assign min_available_compare_at_price = blank for v in product.variants if v.available if min_available_price == blank or v.price < min_available_price assign min_available_price = v.price assign min_available_compare_at_price = v.compare_at_price endif endif endfor if min_available_price == blank assign min_available_price = product.price_min endif if min_available_compare_at_price == blank assign min_available_compare_at_price = product.compare_at_price_min endif assign from_money = min_available_price | money if settings.currency_code_enabled assign from_money = min_available_price | money_with_currency endif assign compare_at_price = min_available_compare_at_price endif assign money_price = 'products.product.price.from_price_html' | t: price: from_money endif -%}
{%- comment -%} Explanation of description list: - div.price__regular: Displayed when there are no variants on sale - div.price__sale: Displayed when a variant is a sale {%- endcomment -%}
{%- if product.quantity_price_breaks_configured? -%} {{ 'products.product.price.regular_price' | t }} {{- 'products.product.volume_pricing.price_range' | t: minimum: money_price_min, maximum: money_price_max -}} {%- if show_compare_at_price and compare_at_price -%} {%- unless product.price_varies == false and product.compare_at_price_varies %} {{- 'products.product.price.regular_price' | t -}} {% if settings.currency_code_enabled %} {{ compare_at_price | money_with_currency }} {% else %} {{ compare_at_price | money }} {% endif %} {%- endunless -%} {%- endif -%} {%- else -%} {{ 'products.product.price.regular_price' | t }} {{ money_price }} {%- endif -%}
{{ 'products.product.price.sale_price' | t }} {{ money_price }} {%- unless product.price_varies == false and product.compare_at_price_varies %} {{ 'products.product.price.regular_price' | t }} {% if settings.currency_code_enabled %} {{ compare_at_price | money_with_currency }} {% else %} {{ compare_at_price | money }} {% endif %} {%- endunless -%}
{{ 'products.product.price.unit_price' | t }} {{- product.selected_or_first_available_variant.unit_price | money -}}  {{ 'accessibility.unit_price_separator' | t }}  {%- if product.selected_or_first_available_variant.unit_price_measurement.reference_value != 1 -%} {{- product.selected_or_first_available_variant.unit_price_measurement.reference_value -}} {%- endif -%} {{ product.selected_or_first_available_variant.unit_price_measurement.reference_unit }}
{% endif %}