Discuss and resolve questions on Liquid, JavaScript, themes, sales channels, and site speed enhancements.
Hello
Our product page prices work fine normally - including when a product has two variants with different prices and you select one - the price changes dynamically.
However, when we have a sale price (Price < Compare at price), the correct pricing loads initially (or with any variant in the URL query on pageload) but selecting a different variant does not update the price as we would expect.
I've tried several things with this code, but I'm having no luck. Below is the code in question, any assistance would be greatly appreciated!
{% comment %} Renders a list of product's price (regular, sale) Accepts: - product: {Object} Product Liquid object (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) Usage: {% render 'price', product: product %} {% endcomment %} {%- liquid if use_variant assign target = product.selected_or_first_available_variant else assign target = product endif assign compare_at_price = target.compare_at_price assign price = target.price | default: 1999 assign money_price = price | money if settings.currency_code_enabled assign money_price = price | money_with_currency endif if target == product and product.price_varies assign money_price = 'products.product.price.from_price_html' | t: price: money_price endif -%} <div class=" price {%- if price_class %} {{ price_class }}{% endif -%} {%- if compare_at_price > price %} price--on-sale {% endif -%} {%- if product.price_varies == false and product.compare_at_price_varies %} price--no-compare{% endif -%} {%- if show_badges %} price--show-badge{% endif -%} " > <div class="price__container"> {%- 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 -%} <div class="price__regular"> <span class="visually-hidden visually-hidden--inline">{{ 'products.product.price.regular_price' | t }}</span> <span class="price-item price-item--regular h6-body-sm"> {% unless price == 0 %} {{ money_price }} {% endunless %} </span> </div> <div class="price__sale"> {%- unless product.price_varies == false and product.compare_at_price_varies %} <span class="visually-hidden visually-hidden--inline">{{ 'products.product.price.regular_price' | t }}</span> <span> <s class="price-item price-item--regular h6-body-sm"> {% if settings.currency_code_enabled %} {{ compare_at_price | money_with_currency }} {% else %} {{ compare_at_price | money }} {% endif %} </s> </span> {%- endunless -%} <span class="visually-hidden visually-hidden--inline">{{ 'products.product.price.sale_price' | t }}</span> <span class="price-item price-item--sale price-item--last h6-body-sm"> {{ money_price }} </span> </div> <small class="unit-price caption{% if product.selected_or_first_available_variant.unit_price_measurement == nil %} hidden{% endif %}"> <span class="visually-hidden">{{ 'products.product.price.unit_price' | t }}</span> <span class="price-item price-item--last"> <span>{{- product.selected_or_first_available_variant.unit_price | money -}}</span> <span aria-hidden="true">/</span> <span class="visually-hidden"> {{ 'accessibility.unit_price_separator' | t }} </span> <span> {%- 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 }} </span> </span> </small> </div>
A fresh install of Dawn theme works as it should, but that's not helped us diagnose our issue.
Thanks
Starting a B2B store is a big undertaking that requires careful planning and execution. W...
By JasonH Sep 23, 2024By investing 30 minutes of your time, you can unlock the potential for increased sales,...
By Jacqui Sep 11, 2024We appreciate the diverse ways you participate in and engage with the Shopify Communi...
By JasonH Sep 9, 2024