All articles
Pricing Strategy

Shopify Compare-At Price: How to Use It Correctly (Without Misleading Customers)

Learn how to use Shopify's compare-at price field to show sale pricing honestly — and how to update it across hundreds of products without errors.

2026-06-188 min readBy BulkOps Team

If you've ever seen a product show "$89.99" crossed out next to a bold "$59.99," that crossed-out number is the compare-at price. Shopify uses this field to display the original price when a product is on sale — and it's one of the most powerful (and most misused) tools in a merchant's pricing arsenal.

Done right, the compare-at price communicates urgency and value clearly. Done wrong, it erodes trust, draws regulatory scrutiny, and trains shoppers to wait for discounts. Here's how to use it correctly — and how to manage it at scale.

What the Shopify Compare-At Price Actually Does

Shopify's compare-at price is a secondary price field on every product variant. When it's set and higher than the current price, Shopify displays the compare-at price as a strikethrough and shows a "Sale" badge automatically (depending on your theme).

The math is simple:

  • Compare-at price: $89.99
  • Sale price: $59.99
  • Shopify shows: $89.99 $59.99 — Save 33%

When you want to end the sale, you clear the compare-at price field, and the strikethrough disappears. The product goes back to looking like a regular full-price item.

That's it. But the simplicity hides a lot of ways to get it wrong.

The Most Common Compare-At Price Mistakes

Setting it to the same value as the price. Shopify only shows the strikethrough when compare-at is higher than the current price. If they match, nothing shows — but you've cluttered your product data unnecessarily.

Never clearing it after a sale ends. This is the most expensive mistake. If your Black Friday sale ends but your compare-at prices stay populated, every product looks permanently discounted. Shoppers stop trusting your "regular" prices, and new customers assume your full price is inflated.

Making up a compare-at price. Setting a $120 compare-at on a product you've always sold for $79 is deceptive pricing. The FTC has issued guidance on this, and several states (California, New York) have consumer protection laws that specifically prohibit "phantom" original prices. The compare-at should reflect a genuine prior selling price — not a number you pulled from thin air to make the discount look bigger.

Setting it lower than the sale price. This creates a confusing display where the "original" price appears cheaper than the current price. Shopify handles this inconsistently across themes — don't let it happen.

When You Should (and Shouldn't) Use Compare-At Price

Good use cases:

  • Seasonal clearance: a Patagonia down jacket you sold at $299 all fall, now marked down to $199 for end-of-season
  • Flash sales: a Yeti tumbler normally at $45, on sale for $35 for 48 hours
  • Holiday promotions: a Lodge cast iron skillet regularly $60, discounted to $45 for a Memorial Day sale
  • Clearance of discontinued SKUs: a Carhartt jacket colorway being retired, markdown from $120 to $85

Bad use cases:

  • Permanently running "sales" where you never actually sell at the full price
  • Setting compare-at on every product regardless of whether there's a real discount
  • Using compare-at as a psychological trick without an actual promotional reason

The test: could you show a customer's order history and prove the product actually sold at the compare-at price within a reasonable recent window (usually 30–90 days)?

How to Set Compare-At Prices on Shopify (Manual vs. Bulk)

For a single product, it's straightforward. In the Shopify admin, open a product, scroll to the Pricing section, and enter the original price in the "Compare-at price" field. Set the actual sale price in the "Price" field. Save. Done.

For 10+ products, manual editing becomes a bottleneck fast. A Stanley tumbler line with 8 color variants × 3 sizes = 24 individual edits just for one product family.

There are three ways to handle compare-at at scale:

1. Shopify CSV export/import. Export your products, modify the Variant Compare At Price column in a spreadsheet, and re-import. This works but is error-prone — one extra column, one wrong delimiter, and you risk corrupting data or overwriting fields you didn't intend to touch.

2. Shopify bulk editor (native). Shopify's built-in bulk editor lets you select multiple products and edit fields including compare-at price. It's functional for small batches but lacks filtering — you can't easily isolate "all products in the Outerwear collection with a margin above 40%" for targeted discounting.

3. A dedicated bulk editing tool. Apps like BulkOps let you filter products by collection, tag, vendor, or margin, then apply compare-at prices as a formula or fixed value across the filtered set. You can set compare-at to "current price" with one click before dropping the sale price — which is exactly the right workflow for running a clean promotion.

The Right Workflow for Running a Sale with Compare-At

Here's the sequence that keeps your data clean and your promotions honest:

Before the sale:

  1. Filter the products you want to put on sale
  2. Set compare-at price = current price (capturing the "before" price)
  3. Apply your sale price (e.g., 20% off via formula)

During the sale: shoppers see the strikethrough, you see the "Sale" badge, everyone knows what's happening.

After the sale:

  1. Restore the original price (which is now stored in compare-at)
  2. Clear the compare-at price field

That last step is critical. If you skip it, you're running a phantom sale indefinitely. The cleanest approach is to use scheduled pricing — set the sale to run from date A to date B, with auto-revert at the end. The compare-at gets cleared automatically when the campaign expires.

Managing Compare-At Prices Across a Large Catalog

If you're running 500+ SKUs across multiple collections, ad-hoc compare-at management breaks down. A few things go wrong:

  • Some products get their compare-at cleared, others don't
  • You lose track of what the original prices were
  • Your reporting shows inflated "before" revenue that never actually existed

The fix is treating compare-at as part of your pricing workflow, not an afterthought. Before any sale event, audit which products have compare-at prices populated. After any sale event, verify that compare-at fields have been cleared on products that are back to full price.

Tools like BulkOps surface this directly in the product list — you can filter for products where compare-at is set but the sale has ended, then clear them in bulk. It takes 30 seconds instead of combing through hundreds of product pages.

A Note on Legal Compliance

This isn't just an ethics issue. The FTC's "Guide Against Deceptive Pricing" (16 CFR Part 233) specifically addresses former price comparisons: the former price must be "the actual, bona fide price at which the article was offered to the public on a regular basis for a reasonably substantial period of time."

Several large retailers have faced class action lawsuits over manufactured "original" prices — JCPenney and Kohl's among them. For DTC brands, the stakes are lower, but the principle is the same: your compare-at should mean something real.

The Takeaway

The compare-at price field is a clean, honest tool when used correctly — and a liability when it isn't. Set it to a real prior price before running a sale. Clear it when the sale ends. And don't leave phantom discounts running in the background eroding your pricing integrity.

If you're managing dozens of promotions across a large catalog, handling compare-at prices manually doesn't scale. BulkOps lets you set, apply, and clear compare-at prices across filtered product sets in bulk — and pair them with scheduled campaigns that auto-revert so you never forget to clean up after a sale. Try BulkOps free and run your next promotion without the spreadsheet chaos.

Shopify compare at price bulk updateShopify compare at priceShopify sale price strikethroughShopify bulk price update

Try BulkOps free on your store

Everything covered in this article is built into BulkOps. Free plan for stores up to 50 products — no credit card required.

Add to Shopify — Free

Was this helpful?