diff --git a/sections/featured-product.liquid b/sections/featured-product.liquid index 6821856a4ac..d0d6a851e0b 100644 --- a/sections/featured-product.liquid +++ b/sections/featured-product.liquid @@ -1,5 +1,8 @@ {%- liquid assign product = section.settings.product + if product == null + assign placeholder = true + endif -%}
{%- when 'title' -%}

- {%- if product.title != blank -%} + {%- unless placeholder -%} {{ product.title | escape }} {%- else -%} {{ 'onboarding.product_title' | t }} - {%- endif -%} + {%- endunless -%}

{%- when 'price' -%}
{%- render 'price', product: product, + placeholder: placeholder, use_variant: true, show_badges: true, price_class: 'price--large' @@ -138,14 +142,14 @@ {%- endif -%}
{%- endif -%} - {%- if product != blank -%} + {%- unless placeholder -%}
{%- form 'product', product -%} {{ form | payment_terms }} {%- endform -%}
- {%- endif -%} + {%- endunless -%} {%- when 'sku' -%}

{{ 'accessibility.vendor' | t }}

{{ 'products.product.vendor' | t }}
{%- endif -%} - {% render 'price', show_compare_at_price: true %} + {% render 'price', placeholder: placeholder, show_compare_at_price: true %}
diff --git a/snippets/price.liquid b/snippets/price.liquid index 7d0b10bf47e..665b69c008d 100644 --- a/snippets/price.liquid +++ b/snippets/price.liquid @@ -3,6 +3,7 @@ Accepts: - product: {Object} Product Liquid object (optional) + - placeholder: {Boolean} Renders a placeholder price (optional) - use_variant: {Boolean} Renders selected or first variant price instead of overall product pricing (optional) - show_badges: {Boolean} Renders 'Sale' and 'Sold Out' tags if the product matches the condition (optional) - price_class: {String} Adds a price class to the price element (optional) @@ -14,14 +15,16 @@ {%- liquid if use_variant assign target = product.selected_or_first_available_variant + elsif placeholder + assign target = null else assign target = product endif 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 price_min = target.price_min + assign price_max = target.price_max assign available = target.available | default: false assign money_price = price | money assign money_price_min = price_min | money @@ -37,94 +40,97 @@ endif -%} -{%- unless target == nil -%} -
-
- {%- 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? -%} - {%- 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 -%} +{%- unless target == null and placeholder == null -%} +
+
+ {%- 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? -%} + {%- 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 -%} + {{ 'products.product.price.regular_price' | t }} + + {{- + 'products.product.volume_pricing.price_range' + | t: minimum: money_price_min, maximum: money_price_max + -}} + + {%- else -%} + {{ 'products.product.price.regular_price' | t }} + + {{ money_price }} + {%- endif -%} - {{ 'products.product.price.regular_price' | t }} - - {{- 'products.product.volume_pricing.price_range' | t: minimum: money_price_min, maximum: money_price_max -}} - - {%- else -%} - {{ 'products.product.price.regular_price' | t }} - +
+
+ {%- 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.sale_price' | t }} + {{ money_price }} - {%- endif -%} -
-
- {%- 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 %} - +
+ + {{ '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 }} + - {%- endunless -%} - {{ 'products.product.price.sale_price' | t }} - - {{ money_price }} - +
- - {{ '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 }} - + {%- if show_badges -%} + + {{ 'products.product.on_sale' | t }} - -
- {%- if show_badges -%} - - {{ 'products.product.on_sale' | t }} - - - {{ 'products.product.sold_out' | t }} - - {%- endif -%} -
-{% endunless %} \ No newline at end of file + + {{ 'products.product.sold_out' | t }} + + {%- endif -%} +
+{% endunless %}