Sale Price Issue

Topic summary

A Shopify store owner applied a 50% discount that displays correctly on individual product pages but fails to show on collection/sale pages.

Root cause identified:
The theme’s collection page template lacks the pricing logic needed to display both original and discounted prices. This logic exists only on product detail pages.

Recommended solutions:

  • Ensure each product has both a “Compare at price” (original) and “Price” (discounted) field set in Shopify
  • Edit the collection grid snippet (typically card-product.liquid or product-grid-item.liquid) to include conditional pricing logic
  • Add code that displays compare-at-price, sale price, and percentage discount when applicable
  • Enable sale badges/discount labels in theme settings if available

Technical implementation:
Two community members provided similar Liquid code snippets that check if a compare-at-price exists, then display both prices plus calculated discount percentage. The store owner confirmed wanting all products on the sale collection page to show 50% off with both original and sale prices visible, matching the product detail page display.

Summarized with AI on October 25. AI used: claude-sonnet-4-5-20250929.

I have applied a 50% discount on my products, which shows correctly on the individual product pages. However, on the collection or sale page, the prices are showing incorrectly, and the 50% discount is not displayed. I want the sale page to show the correct prices for all products and display the 50% discount properly. I am also sharing the URL of my website’s sale page for reference.
URL:- Elegant Attire Awaits at Our Designer Sale Online – zahraahmadofficial

1 Like

Hi @SSR

The reason your 50% discount isn’t showing on the collection or sale page is likely due to how your theme displays product prices. Some Shopify themes show discounted prices correctly on individual product pages but require minor adjustments for collection pages.

Here’s what you can do:

  1. Check your product pricing – Make sure each product has an original price (Compare at price) and a discounted price (Price field). Shopify uses the Compare at price to calculate and display discounts.

  2. Check your collection page template – The template may need code to show both the original and discounted prices. For example:

{% if product.compare_at_price > product.price %}
  <span class="original-price">{{ product.compare_at_price | money }}</span>
  <span class="sale-price">{{ product.price | money }}</span>
{% else %}
  <span class="price">{{ product.price | money }}</span>
{% endif %}

  1. Enable sale badges or discount labels – Some themes have this in Theme Settings → Product Grid. Make sure it’s turned on.

  2. Preview and test – After adjustments, confirm that your sale page shows the correct discounted prices for all products.

If you’re not comfortable editing code, a Shopify developer can implement this quickly.

Best

Nobble

Hi @SSR,

What’s happening is that your discounted pricing logic is only set on the product page template, not in the collection grid item snippet. That’s why product pages show the 50% discount, but collections/sale page don’t.

  1. Go to Online Store → Themes → Edit code.
  2. Open the snippet used for product cards (usually snippets/card-product.liquid or snippets/product-grid-item.liquid, depending on your theme).
  3. Find where the product price is rendered - it often looks like:
{{ product.price | money }}
  1. Replace it with logic that shows compare-at-price and percentage off if available, like:
{% if product.compare_at_price > product.price %}
  <span class="sale-price">{{ product.price | money }}</span>
  <span class="compare-price">{{ product.compare_at_price | money }}</span>
  <span class="discount">-{{ ((product.compare_at_price | minus: product.price) | times: 100 | divided_by: product.compare_at_price) | round }}%</span>
{% else %}
  <span class="regular-price">{{ product.price | money }}</span>
{% endif %}

Please have a look into this link Sale Collection, i just want to put all the products on this page on 50%. So product can correctly shows the original price with sale price as shown on product detail page