{%- comment -%} ---------------------------------------------------------------------------------------------------------------------- PRODUCT PRICE ---------------------------------------------------------------------------------------------------------------------- Render a list of price for a product, variant or line item. ******************************************** Supported variables ******************************************** * product: if provided, the prices are rendered for the whole product * variant: if provided, then only the price from this variant is rendered * alignment: can be "start", "center" or "end" (default to start) * line_item: if provided, then the price from this line item are rendered (used on cart or order) * hide_unit_price: if set to true unit prices are hidden (mostly useful for size constrained elements) * context: can be "product", "line_item" or "card". This controls how the prices are displayed (using the correct sizes) {%- endcomment -%} {%- liquid case context when 'product' assign regular_price_classes = 'h6 ' assign on_sale_price_classes = 'h6 text-on-sale' assign compare_at_price_classes = 'h7 line-through' assign unit_price_classes = 'subheading text-subdued' when 'card' case settings.product_card_style when 'subheading': assign regular_price_classes = 'subheading text-subdued' assign on_sale_price_classes = 'subheading text-on-sale' assign compare_at_price_classes = 'subheading text-subdued line-through' assign unit_price_classes = 'subheading text-subdued' when 'body_text': assign regular_price_classes = 'text-sm text-subdued' assign on_sale_price_classes = 'text-sm text-on-sale' assign compare_at_price_classes = 'text-sm text-subdued line-through' assign unit_price_classes = 'text-sm text-subdued' when 'heading': assign regular_price_classes = 'text-subdued' assign on_sale_price_classes = 'text-on-sale' assign compare_at_price_classes = 'text-subdued line-through' assign unit_price_classes = 'text-subdued' endcase when 'line_item' assign regular_price_classes = 'subheading text-subdued' assign on_sale_price_classes = 'subheading text-on-sale' assign compare_at_price_classes = 'subheading text-subdued line-through' assign unit_price_classes = 'subheading text-subdued' endcase -%} {%- if variant != blank -%} {%- comment -%} -------------------------------------------------------------------------------------------------------------------- VARIANT CASE (used on product page, quick view...) -------------------------------------------------------------------------------------------------------------------- {%- endcomment -%} {{ 'product.price.sale_price' | t }} {%- if settings.currency_code_enabled -%} {{- variant.price | money_with_currency -}} {%- else -%} {{- variant.price | money -}} {%- endif -%} {%- if variant.compare_at_price > variant.price -%} {{ 'product.price.regular_price' | t }} {%- if settings.currency_code_enabled -%} {{- variant.compare_at_price | money_with_currency -}} {%- else -%} {{- variant.compare_at_price | money -}} {%- endif -%} {%- endif -%} {%- elsif line_item != blank -%} {%- comment -%} -------------------------------------------------------------------------------------------------------------------- LINE ITEM CASE (used on cart, order page...) -------------------------------------------------------------------------------------------------------------------- {%- endcomment -%} {{ 'product.price.sale_price' | t }} {%- if settings.currency_code_enabled -%} {{- line_item.final_price | money_with_currency -}} {%- else -%} {{- line_item.final_price | money -}} {%- endif -%} {%- if line_item.original_price > line_item.final_price -%} {{ 'product.price.regular_price' | t }} {%- if settings.currency_code_enabled -%} {{- line_item.original_price | money_with_currency -}} {%- else -%} {{- line_item.original_price | money -}} {%- endif -%} {%- endif -%} {%- elsif product != blank -%} {%- comment -%} -------------------------------------------------------------------------------------------------------------------- PRODUCT CASE (used on card) -------------------------------------------------------------------------------------------------------------------- {%- endcomment -%} {%- liquid if product.price_varies and settings.product_card_price_strategy != 'from_price' assign variant = product.variants | sort: 'price' | last | default: product.selected_or_first_available_variant else assign variant = product.variants | sort: 'price' | first | default: product.selected_or_first_available_variant endif assign raw_variant_price = variant.price assign raw_variant_compare_at_price = variant.compare_at_price assign raw_variant_price = variant.metafields.app--168074346497.auto_discounted_price.value | default: variant.price if variant.metafields.app--168074346497.discount_type.value != nil and variant.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 variant.metafields.app--168074346497.discount_percentage.value > 0.01 assign deducted_percentage = 1.0 | minus: variant.metafields.app--168074346497.discount_percentage.value endif assign raw_variant_price = variant.price | divided_by: 100.0 | times: deducted_percentage | times: 100.0 | ceil assign raw_variant_compare_at_price = variant.price if variant.compare_at_price > raw_variant_compare_at_price assign raw_variant_compare_at_price = variant.compare_at_price endif endif if settings.currency_code_enabled assign variant_price = raw_variant_price | money_with_currency assign variant_compare_at_price = raw_variant_compare_at_price | money_with_currency else assign variant_price = raw_variant_price | money assign variant_compare_at_price = raw_variant_compare_at_price | money endif -%} {%- if product.price_varies -%} {%- assign is_variant_on_sale = false -%} {%- if variant.price < variant.compare_at_price -%} {%- assign is_variant_on_sale = true -%} {%- endif -%} {%- if settings.product_card_price_strategy == 'from_price' -%} {{ 'product.price.sale_price' | t }} {{- 'product.price.from_price_html' | t: price_min: variant_price -}} {%- else -%} {{ 'product.price.sale_price' | t }} {{- variant_price -}} {%- endif -%} {%- else -%} {{ 'product.price.sale_price' | t }} {{- variant_price -}} {%- endif -%} {%- if raw_variant_price < raw_variant_compare_at_price -%} {{ 'product.price.regular_price' | t }} {{- variant_compare_at_price -}} {%- endif -%} {%- else -%} {%- comment -%} -------------------------------------------------------------------------------------------------------------------- PLACEHOLDER CASE (used on featured product section for instance) -------------------------------------------------------------------------------------------------------------------- {%- endcomment -%} {{ 'product.price.sale_price' | t }} {%- if settings.currency_code_enabled -%} {{- 4999 | money_with_currency -}} {%- else -%} {{- 4999 | money -}} {%- endif -%} {%- endif -%} {%- unless hide_unit_price -%} {%- assign unit_price_item = variant | default: line_item | default: product.selected_or_first_available_variant -%} {%- if unit_price_item.unit_price -%} {%- assign unit_price_measurement = unit_price_item.unit_price_measurement -%} {%- if unit_price_measurement.reference_value != 1 -%} {%- assign reference_value = unit_price_measurement.reference_value -%} {%- endif -%} ({{ unit_price_item.unit_price | money }}/{{ reference_value }}{{ unit_price_measurement.reference_unit }}) {%- endif -%} {%- endunless -%}