Compare-at Price in Shopify: Meaning and How to Use It
The crossed-out price next to the one a shopper pays. What it means, how to set it, and the rules that keep it honest.

In Discounty: Bulk price editor See how the Shopify bulk price editor works
In Shopify, the compare-at price is the product's original price, shown crossed out next to the lower price it sells for now. A body lotion that normally costs $20 and is on sale for $18 has a Price of $18 and a Compare-at price of $20. The shopper pays the Price; the compare-at price shows the saving, here $2 or 10%.
What does compare at price mean?
It is the price you compare the current price against. Shopify has two price fields on every product:
- Price is what the customer pays.
- Compare-at price is the higher, original price.
When the compare-at price is higher than the price, most themes show it with a strikethrough and may add a sale badge. Leave it empty, and the product shows one price with no sale. Shopify notes that "only the sale price is displayed at checkout", so the crossed-out price appears on product and collection pages, not at checkout.
Why does a compare-at price work?
Because the first number a shopper sees sets the scale for the next one. Amos Tversky and Daniel Kahneman called this anchoring (Science, 1974): estimates move toward a starting value, even an arbitrary one. A $150 crossed out next to $100 makes $100 read as a saving of $50. See price anchoring for the research and examples.
How do you add a compare-at price in Shopify?
- In the Shopify admin, go to Products and open the product.
- In the pricing section, enter the original price in Compare-at price and the sale price in Price. The compare-at price must be higher.
- Click Save.
For variants, set the compare-at price on each one. If some variants have a compare-at price and others do not, a collection page may not show the product as on sale. Keep them consistent.
How do you remove a compare-at price?
Open the product, clear the Compare-at price field, and save. Leave it empty: Shopify notes that a compare-at price of $0.00 "isn't the same as an empty compare-at price". For many products, select them in the product list and use Bulk edit to clear the column.
How do you set compare-at prices in bulk?
Shopify's bulk editor changes the fields across many products, but you have to change them back by hand when the sale ends.
A Discounty Bulk price editor campaign does both. It lowers the price across a collection, a tag, a vendor, a product type, the whole store or a hand-picked list. For a product with no compare-at price, it saves the old price as the compare-at price, so the theme shows the strikethrough. Discounty saves each product's original price and compare-at price, and puts both back when the campaign ends. It is on every plan, including the free one. On the Essential plan and up, For product already discounted, calculate the discount based on "compare-at price" takes the new discount from the original price, instead of stacking it on a price that is already marked down.
To undo it, deactivate the campaign. It shows as Reverting while Discounty puts the original prices back.
What are the rules for a compare-at price?
The crossed-out price has to be real. Three sets of rules:
| Where | Rule | What it means |
|---|---|---|
| EU | Article 6a of the Price Indication Directive, from 28 May 2022 | A price-reduction announcement shows the lowest price you charged in at least the 30 days before it |
| UK | Chartered Trading Standards Institute guidance, April 2026 | The reference price is one you genuinely charged, judged on how long, how recently, and whether you made real sales at it |
| US | FTC Guides Against Deceptive Pricing, 16 CFR 233.1 | A former price was openly and actively offered for a reasonably substantial period, in the recent, regular course of business |
A compare-at price you never charged, or a "sale" that never ends, can break all three.
Can you see which orders were sold at the compare-at sale price?
Not from Shopify's reports. A compare-at sale changes the product's price itself, so the order records only the price paid. Shopify's sales reports count discounts created as discounts, not the gap to a compare-at price.
Two ways to measure a sale:
- Run it as a campaign with its own report. For Bulk price editor campaigns, Discounty's Analytics page shows the revenue from the campaign's sale items, the number of orders that included them, and their average order value.
- Use a discount instead of a sale price. An automatic discount or a code appears on the order and in Shopify's sales reports as a discount.
How we counted
The Shopify rules are from Shopify's Help Center pages on sale pricing and on sales reports, read on 9 October 2026. The legal rules are from the texts named in the table. This post uses no Discounty figures.
Questions
What is compare-at price in Shopify?
The higher, original price Shopify shows crossed out next to the price the customer pays. It is entered in the Compare-at price field.
What does compare at price mean on a product page?
The crossed-out price is what the product normally costs; the other price is what you pay today.
Does a compare-at price change what the customer pays?
No. The customer pays the Price field. The compare-at price only changes what they see.
Can I set compare-at prices in bulk?
Yes. In Shopify's bulk editor you change them by hand. A Discounty Bulk price editor campaign sets them across a collection, tag or list and puts the prices back when the campaign ends.
Is it legal to set any compare-at price?
No. In the EU it must reflect the lowest price in the previous 30 days, and in the UK a price you genuinely charged. In the US it must be a price you openly offered for a reasonably substantial period.
How to Put a Whole Shopify Collection on Sale, With the Old Price Crossed Out
What Is a Tiered Discount? Set Up Tiered Pricing on Shopify
BOGO on Shopify: What It Is and How to Set It Up