Key takeaways
- The compare-at price must be higher than the price; an equal or lower value shows no sale.
- If the product page shows the sale but the collection page doesn't, check for variants with blank, 0.00 or lower compare-at prices.
- Sale display depends on your theme, so check its settings, any custom code and the theme that's actually published.
- Fixed prices in a market catalog override the admin price and compare-at price for that market.
- Discounts show savings in the cart and at checkout, not as a crossed-out compare-at price on product pages.
Why is my compare-at price not showing on Shopify?
Almost every case comes down to one of 7 causes. Find your symptom in the table, then use the matching section below. For background on how the field works, see Shopify compare-at price explained.
Before you dig in, confirm the basics: you're looking at the right product, on the published theme, in the market you set the price for. A surprising number of "missing" sales are a preview theme, a cached page or a different country's prices.
| Symptom | Likely cause | Fix |
|---|---|---|
| No sale anywhere for a product | Compare-at price equal to or lower than the price | Make the compare-at price higher, or clear it |
| Sale on the product page but not the collection page | Variants have mixed, blank or 0.00 compare-at prices | Give all variants on sale a higher compare-at price, or clear them all |
| Sale for some sizes or colors only | Compare-at price set on some variants only | Set it on every variant in the sale |
| Right prices in the admin, no sale styling | Theme settings, custom code, or the wrong theme being checked | Check the published theme's settings and code |
| International shoppers don't see the sale | Fixed prices in a market catalog override admin prices | Set compare-at prices in the catalog or update its fixed prices |
| Savings appear only in the cart | A discount was used, not a compare-at price | Use compare-at prices for a crossed-out price on product pages |
| Sales vanished after an import or bulk edit | The edit changed or cleared compare-at prices, or raised prices past them | Compare with your backup export, then re-import or fix |
Is the compare-at price higher than the price?
Shopify's rule is that the value in Compare-at price must be higher than the value in Price for the sale price to display (Shopify's sale price guide). If the two are equal, or the compare-at price is lower, the storefront shows a normal price.
This usually happens by accident. A price increase pushes the price up to or past an old compare-at price. A sale ends, the price goes back to normal, and an equal compare-at price is left behind. Or values land in the wrong CSV column during an import, so the two numbers swap.
Fix: open the variant and compare the two fields. If the item should be on sale, make the compare-at price the genuine original price and the price lower. If it shouldn't be on sale, clear Compare-at price and save.
Does every variant have a consistent compare-at price?
Compare-at prices are stored per variant, so a product can be on sale in one size and full price in another. Product pages read the selected variant, which is why each variant can look right there. Collection pages usually read product-level values instead.
In Shopify's Liquid reference, the product-level compare_at_price is the lowest compare-at price of any variant, and price is the lowest price of any variant (Liquid product object). Shopify's own troubleshooting advice says collection pages can fail to show compare-at prices when variants conflict: some at 0.00, some empty, some with different values.
Fix: give every variant in the sale a compare-at price that's higher than its own price, or clear the compare-at price on all of them. Clear means an empty field. Shopify treats 0.00 differently from blank, so don't type zero. The quickest way to see every variant at once:
- Go to Products, select the product and click Bulk edit.
- Click Columns and add Price and Compare-at price.
- Look for blank, 0.00 or lower compare-at values among the variants that should be on sale.
- Fix them, click Save, then reload a collection page that includes the product.
Is your theme set up to show sale prices?
Shopify stores the prices; your theme decides how to show them. Shopify notes that sale price display depends on your theme, and that a theme may add a badge with a message or percentage off. If the data is right and nothing shows, the cause is in the theme.
Work through the theme from the outside in:
- Make sure you're checking the published theme. A theme you're previewing or editing may differ from the live one.
- In your admin, go to Online Store, click Edit theme next to the theme and open Theme settings. Look for badge and price options; many themes let you change sale badge position, shape and color (theme settings guide).
- Check the product card and product page sections for a price or badge block that's been hidden or removed.
- If someone customized the theme code, compare the price snippet with an unmodified copy of the same theme.
- Reload the page in a private browser window to rule out a cached version.
Are market prices overriding your compare-at price?
If you sell internationally with Shopify Markets, a market's catalog can change both numbers. A fixed price you set for a product in a catalog overrides the price and compare-at price from your admin. A catalog's percentage adjustment applies to compare-at prices by default; if Include compare-at price is turned off, compare-at prices for that catalog are set manually (Creating catalogs for markets).
Fix: view the store as a customer in the affected market, for example by switching the country selector, and check the product. Then open that market's catalog and either set compare-at prices for the fixed-price products, or remove the fixed prices so the admin values and the percentage adjustment apply.
Do this check whenever you run a sale that should reach international shoppers. Fixed prices stay in place through every sale until you change them, so for those products the sale you set in your admin doesn't reach that market.
Did you use a discount instead of a compare-at price?
Discounts and compare-at prices show savings in different places. Automatic discounts are applied in the cart and at checkout, and discount codes are entered at checkout (discount methods). Neither changes the variant's compare-at price, so the product page shows the normal price. Shopify says that showing discount savings as crossed-out prices on product pages needs a third-party discount app or a Shopify Partner.
Fix: if you want the crossed-out price on product and collection pages, put the items on sale with compare-at prices instead; see how to put items on sale on Shopify. If you run a discount on items that are already on sale, check the final price, because the discount is calculated on the already-reduced price.
Did an import, bulk edit or app change your prices?
When sales vanish across many products at once, look at what changed in bulk. Compare current values with your last export, re-import the backup if nothing else changed since, or correct the affected variants. Shopify doesn't let you view a history of past imports, so dated exports are your audit trail. Three patterns are common:
- A CSV import with blank cells. With Overwrite products with matching handles selected, a blank cell in a non-required column replaces the existing value with blank, so an emptied Compare-at price column clears every compare-at price in the file.
- A price increase that ignored compare-at prices. Raising prices by 10% when sale items had compare-at prices only 5% above the price pushes the price past the compare-at price, and the sale display disappears.
- Another app or person editing prices. Check which apps can write product prices, and whether someone ran a bulk edit or import during the same period.
How do you stop compare-at problems before they happen?
Prevention is mostly one check before you save: every row in a price change should end with a compare-at price higher than its new price, or no compare-at price at all.
Sale Scheduler by SalePilot builds that check into its price preview. Each variant shows its price and compare-at price before and after, with a status. If a resulting compare-at price wouldn't be higher than the new price, the row is marked Warning and isn't applied, because Shopify wouldn't show it as a sale. You can filter the review to Warnings to see every affected variant, and no Shopify prices change until you start or schedule the sale.
Its compare-at actions also cover the usual fixes in bulk: Set compare-at price to original price when a sale starts, Increase relative to new price when you reprice items, and Remove compare-at price to clean up after a sale.
Quick test after any price change: open one product page and one collection page in a private window, on desktop and on mobile, and switch to one international market if you sell abroad. It takes two minutes and catches most display problems before customers do.