How to bulk edit compare-at prices in Shopify
Updated July 2026
The compare-at price is what powers Shopify’s strikethrough sale display: set it above the actual price and themes show “$49.99 $39.99” plus a sale badge. Simple on one product; error-prone on five hundred. This guide covers how to run compare-at changes in bulk without ending up with stale or nonsensical sale displays.
How compare-at works (30 seconds)
- Compare-at > price → the product renders as on sale (strikethrough + badge in most themes).
- Compare-at empty or ≤ price → no sale display.
- It is a per-variant field — a product with six variants has six compare-at prices, and a bulk tool must handle all of them, not just the first variant.
The two standard sale patterns
Pattern A — mark down the price. Set compare-at to the current price (preserving the “was” value), then lower the price. This is the honest classic. The risky step is ordering: if you lower the price first and set compare-at from “current price” second, your compare-at captures the discounted price and the sale display vanishes.
Pattern B — end a sale / clean up. Restore the price, then clear the compare-at field. Leaving stale compare-at values behind is the most common mess: months-old “sales” still showing, or compare-at below the actual price making themes behave inconsistently.
The bulk workflow
- Filter to the exact selection (collection, tag, vendor) and check the match count.
- Preview the before → after for every variant. Watch specifically for variants where the new compare-at would be ≤ the price — those will not display as on sale and usually indicate a product that was already discounted.
- Run, then verify both fields. Price and compare-at are two writes per variant; a partial failure that applies one but not the other is worse than a failure that applies neither — you get a full-price product wearing a sale badge, or a discount with no sale display. This is exactly where post-edit verification pays for itself.
- Schedule the cleanup when the sale ends — restore prices and clear compare-at in one planned operation, not a manual task at 11pm on a Sunday.
Doing this with SureEdit
SureEdit supports set compare-at and clear compare-at as first-class bulk edits, alongside the price adjustments (fixed, amount, percentage, .99 rounding). Every write is re-read from Shopify and verified per variant, the preview shows each before → after value, and undo restores the exact original prices and compare-at values — so ending a sale is one click, not a second spreadsheet project. On Growth plans, the whole sale (start and auto-restore) can be scheduled in your store’s timezone.
Try SureEdit — free plan available
FAQ
Does compare-at affect search engines or ads?
Google Shopping and other channels read the actual price, and some also submit the compare-at as the original price for sale annotations. A stale compare-at can therefore leak into ad surfaces — another reason to clear it when a sale ends.
Can I set compare-at as a percentage above price?
The common need is the reverse (set compare-at to the current price, then discount the price). Inflating compare-at to fake a bigger discount can violate consumer-pricing rules in many countries — don’t.