Things to Know about Shopify Compare at Price

Shopify Compare at Price: What It Means and How to Set It (2026)

Your sale is live. The admin shows the right numbers. But your collection page displays every product at regular price, no sale badge, no crossed-out original. No error. No warning. Just missing pricing that customers never see.

That is a variant inconsistency issue, and it is one of the more frustrating ways Shopify compare at price breaks without telling you why. The feature looks simple from the outside: enter a higher number in a field, get a strikethrough on the storefront. In practice, it depends on three things working together: correct product data, consistent variant data, and a theme that renders the output. When any one of them is off, the sale display disappears silently.

This guide covers what Shopify compare at price is, how to set it correctly for single products and variants, how to bulk update it via CSV, why it stops showing and how to fix it, what the Liquid objects look like, and what compliance rules apply in EEA and UK markets.

QUICK ANSWER: WHAT IS SHOPIFY COMPARE AT PRICE?

Compare at Price is the product’s original price before a discount. When it’s higher than the current Price, Shopify displays it as a crossed-out price next to the sale price, helping shoppers see how much they save.

Key Takeaways

  • Compare at Price is the original price. Price is the discounted selling price.
  • The compare-at price must be higher than the Price field for the sale display to appear.
  • Use product.compare_at_price and variant.compare_at_price in Liquid.
  • Leave compare-at price blank for products that aren’t on sale.
  • Compare-at pricing appears on product and collection pages before checkout.

What is Shopify Compare at Price?

Shopify compare at price is the reference price that appears crossed out on a product page when you put a product on sale. It tells shoppers what the item was priced at before the markdown. When set up correctly, your storefront shows both the original price (crossed out) and the current sale price side by side, without needing a discount code or any additional setup.

The field lives inside each product’s Pricing section in your Shopify admin. It only activates when the value you enter is higher than the Price field. If the compare-at value is equal to or lower than the Price, nothing changes on the storefront and no sale badge appears.

Compare at price

This is different from using Shopify promotional banners or running a countdown timer. Compare at price is a product-level pricing feature. It does not expire unless you remove it manually. It shows up on both product pages and collection pages, which makes it the right tool for any permanent or seasonal markdown where you want the sale to be visible before the customer even clicks the product.

Price vs Compare at Price: Which Field Is Which

The most common mistake with compare at price is putting the numbers in the wrong fields. Here is the rule:

Field What to Enter What It Does
Price The lower, current selling price (e.g. $30) This is the amount customers pay.
Compare at Price The higher, original price (e.g. $50) Displays a crossed-out original price beside the sale price.

If you enter the original price in Price and the sale price in Compare at Price, the display breaks. Shopify only activates the sale display when Compare at Price is greater than Price. Reversing them produces no visible change on the storefront.

Shopify compare at price example

Simple rule: Price is what customers pay. Compare at Price is the original price before the discount, and it must always be the higher value.

How to Set Shopify Compare at Price (Step-by-Step)

Here is how to set compare at price on a single product in the current Shopify admin:

1
Log in to your Shopify admin and go to Products.
2
Open the product you want to put on sale.
3
Scroll to the Pricing section.
4
Click “Compare at” to reveal the compare-at price field.
5
Enter the original (higher) price in the Compare-at Price field.
6
Make sure the Price field contains the lower sale price.
7
Click Save.
8
Check your storefront to confirm the crossed-out price appears correctly.

After saving, your theme will display the compare-at price next to the current price. Modern Shopify Online Store 2.0 themes like Dawn handle this automatically and show a “Sale” badge when compare-at is set. Older themes may need a Liquid code addition, which is covered in the Liquid section below.

How to Set Compare at Price on Variants

If your product has variants (size, color, material), you need to set compare at price at the variant level. This is where most stores run into collection page display issues.

Shopify compare at price

To set compare at price on product variants:

  1. Open the product in your Shopify admin.
  2. Scroll to the Variants section and click the variant count to open the variant editor.
  3. For each variant, click into it and enter the original price in Compare-at price.
  4. Make sure the Price field for that variant has the lower sale price.
  5. Repeat for every variant, then click Save.

Critical rule for collection pages: If any product variant has a Compare-at Price of $0.00, a blank value, or an inconsistent compare-at price while other variants are on sale, Shopify may not display the sale badge on collection pages. Individual product pages can still show the correct pricing, making this issue easy to overlook.

The fix is simple: set consistent compare-at prices on all variants, or clear compare-at from all variants entirely. There is no working middle state. Also important: $0.00 is not the same as an empty field. You need to clear it completely, not set it to zero. This distinction also causes a specific bug in Shopify’s Dawn theme where a $0.00 variant suppresses the sale badge even on variants with correct values.

How to Bulk Update Compare at Price

For sales across multiple products, manual editing takes too long. Shopify gives you two bulk update methods.

Method 1: Shopify Bulk Editor

  1. Go to Products.
  2. Select the products to update.
  3. Click Bulk Edit.
  4. Add the Compare at Price column if needed.
  5. Enter compare-at prices.
  6. Click Save.

Best for: Quickly updating multiple products without using a spreadsheet.

Method 2: CSV Import

  1. Export your products CSV.
  2. Edit the Variant Compare At Price column.
  3. Save the CSV.
  4. Import it back into Shopify.
  5. Enable Overwrite products with matching handles.
  6. Verify the changes.

Best for: Large catalogs, bulk updates, and team workflows.

For Shopify Markets (international pricing): Market-specific Compare-at Prices cannot be edited from the Shopify admin. Export your product CSV, update the Variant Compare At Price column for the required variants, then import the file again with Overwrite products with matching handles enabled.

Why Compare at Price Is Not Showing (Fix Each Cause)

When the compare-at price is set correctly in admin but nothing appears on the storefront, the issue is in one of these areas:

Shopify Price Sample

Cause What you see Fix
Fields are reversed Compare-at price is lower than the Price, so no sale appears. Set Compare at Price higher than the Price.
Variant inconsistency Product page shows correctly, but collection pages don’t display the sale badge. Use consistent compare-at values for every variant or clear them all.
$0.00 instead of blank Looks like variant inconsistency and prevents proper sale display. Leave the field blank instead of entering $0.00.
Theme not rendering compare-at Prices are correct in Shopify admin but not on the storefront. Review your theme settings or update the Liquid price template.
Shopify Markets Sale pricing works in one market but not another. Check Shopify Markets pricing configuration for that market.
App conflict Sale prices appear inconsistently or disappear unexpectedly. Disable pricing or personalization apps temporarily to identify conflicts.

Debug in this order: product data first, then variant consistency, then theme, then Markets, then apps. Most issues are in the first two steps and do not require any code changes.

Compare at Price in Shopify Liquid

If you are working on a custom theme or an older theme that does not render compare-at prices automatically, you need Liquid. Two objects handle this:

  • product.compare_at_price: the product’s compare-at price value
  • variant.compare_at_price: the compare-at price for a specific selected variant

Basic sale price display:

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

This checks if compare-at is higher than the current price and outputs both values with the original in a strikethrough element. If not, it outputs the regular price only.

Discount percentage badge:

{% if variant.compare_at_price > 0 and variant.compare_at_price > variant.price %}
  {% assign savings = variant.compare_at_price | minus: variant.price %}
  {% assign pct = savings | times: 100 | divided_by: variant.compare_at_price %}
  <span class="badge--sale">{{ pct }}% OFF</span>
{% endif %}

The variant.compare_at_price > 0 check prevents a divide-by-zero error when the compare-at field contains $0.00 instead of being blank.

In Dawn, the price logic lives in snippets/price.liquid. Dawn handles compare-at natively when the data is correct, so check your product and variant data before editing any Liquid. For developers building custom product display sections, also see the guides on Shopify product sliders and adding an image carousel on Shopify for ways to showcase sale products visually.

Compare at Price vs Discount Codes

Compare at price and discount codes both reduce what a customer pays, but they work at different stages of the shopping experience and serve different purposes.

Feature Compare at Price Discount Codes
Where is it visible? Product and collection pages before checkout. Checkout only.
Collection sale badge Yes, when all variants have consistent compare-at prices. No.
Customer action required? No. Sale pricing appears automatically. Yes. Customers must enter a discount code.
Changes checkout price? No. Customers pay the Price field value. Yes. The discount is applied during checkout.
Best for Seasonal sales, permanent markdowns, visible discounts. Coupon campaigns, referrals, loyalty rewards.

When you run a discount code in Shopify, the compare-at price field is not updated. Products still display full price on product and collection pages. The discount only appears at checkout when the code is entered. If you want shoppers to see a sale before they click “Add to Cart,” compare at price is the right tool.

Use both for maximum impact: Set a Compare at Price so customers immediately see the discount on product and collection pages. Pair it with a countdown banner to add urgency without requiring customers to enter a discount code.

For store-wide promotions where you want the sale visible on every product card, compare at price is more effective because it works before checkout. For conditional promotions (referral codes, loyalty rewards, B2B pricing), discount codes are the better tool since compare at price would make the sale visible to all visitors.

EEA/UK Compliance: The 30-Day Rule

If your store sells in the European Economic Area (EEA) or the United Kingdom, compare at price has legal implications beyond marketing.

Under the EU Omnibus Directive and UK consumer protection regulations, the compare-at (original) price you display must represent the lowest price the product was sold at during the 30 days before the current promotion.

Shopify does not enforce this automatically. The platform has no system that checks how long a product was at the compare-at price before you activate the discount.

If you set an inflated compare-at price that the product was never actually sold at, or if you raise the price right before a sale and then show the higher price as the original, you risk non-compliance with consumer pricing laws in regulated markets.

Practical rule for EEA/UK stores: Before setting a Compare at Price, make sure the product was genuinely sold at that higher price for at least 30 consecutive days. Keep a pricing history if you run frequent promotions, as Shopify does not track compliance with local pricing regulations.

Best Practices for Shopify Compare at Price

These are the practices that keep compare at price working as a conversion tool instead of a constant debugging problem:

  • Only use compare at price for real markdowns. If the original price was never the actual selling price, the display misleads customers and creates compliance risk in regulated markets.
  • Set it consistently across all variants. Mixed values across a product’s variants will break the collection page sale display every time. Test both the product page and the collection page after setting.
  • Use blank, not $0.00, for variants not on sale. A zero value in the compare-at field behaves differently from an empty field and can suppress the sale badge even on variants with correct data.
  • Remove it after the sale ends. Leaving compare at price on permanently trains customers to wait for deals and erodes the credibility of your pricing over time.
  • Combine with visual promotion for more impact. A crossed-out price in a product card gets more attention when paired with a hero slider promotion or a Shopify slideshow highlighting the sale.
  • Use high-quality product images for on-sale products. A strong price signal is wasted on poor images. See Shopify product photography best practices and the guide to correct Shopify image sizes for the product pages where compare at price will appear.
  • Use animated sale sections for major events. For Black Friday or clearance campaigns, Shopify slider apps let you build full sale layouts with product carousels that extend beyond what the native product grid shows.

For the broader picture on improving store performance, see the Shopify conversion rate optimization guide and the Shopify SEO guide to make sure sale products are discoverable in search, not just visible on-site.

General questions

What is the difference between Price and Compare at Price in Shopify?

Price is the amount the customer pays at checkout. Compare at Price is the original reference price displayed crossed out on product and collection pages. Price should always be the lower value (the sale price). Compare at Price should always be the higher value (the original price). Reversing these two fields disables the sale display entirely because Shopify only activates it when Compare at Price exceeds Price.

Why is compare at price not showing on my Shopify collection page?

The most common cause is variant inconsistency. If any variant on a product has a compare-at price of $0.00, a blank value, or a mismatched value while other variants have correct values set, Shopify will not show a sale badge on the collection page for that product. The fix is to set consistent compare-at prices across all variants, or clear the field on all of them. A $0.00 entry is not the same as a blank field. You need to clear it completely, not set it to zero.

Does Shopify compare at price work with discount codes?

No. Compare at price and discount codes are separate systems. Compare at price displays the original vs. sale price on product and collection pages before checkout. Discount codes only apply at checkout and do not update the compare-at display. If you run a discount code promotion without setting compare at price, customers will see full price on all product cards until they enter the code at checkout.

What is compare_at_price in Shopify Liquid?

product.compare_at_price returns the product’s compare-at price value in Liquid. variant.compare_at_price returns the compare-at price for the currently selected variant. Use if variant.compare_at_price > variant.price to check whether a sale display should render. Always check that the value is greater than zero before calculating discount percentages to avoid divide-by-zero errors when the field contains $0.00 instead of being blank.

Is there a compliance rule for compare at price in the EEA or UK?

Yes. Under the EU Omnibus Directive and UK consumer protection law, the compare-at price shown must reflect the lowest price the product was sold at in the 30 days before the current promotion. Shopify does not enforce or track this automatically. Store owners are responsible for ensuring the original price was the actual selling price for at least 30 consecutive days before showing it as a compare-at reference.

Turn Your Sale Pricing Into a Visual Event

Compare at Price highlights the savings. Slider Revolution helps you showcase them with animated sale banners, countdown timers, hero sliders, and product showcases that increase engagement.

Try Slider Revolution Free →

I’m a digital marketing expert and mobile app developer with a deep understanding of Shopify App Store optimization. I contribute insightful articles on Shopify to help businesses thrive online.

Leave a Comment

🔒 Protect your Shopify store with automatic backups

X
Scroll to Top