How to Bulk Edit Compare-At Price in Shopify
Shopify lets you bulk edit compare-at price two ways: through the Edit prices panel, which can set or adjust compare-at independently of the selling price, or through the bulk editor grid, which lets you type or paste a different compare-at value into every row. Compare-at price drives the strikethrough number Shopify shows next to a discounted price, but it only displays that way when compare-at is set higher than the actual price. A batch that raises price without also raising compare-at, or that leaves compare-at at zero, ends up showing a plain price with no crossed-out comparison at all.
What compare-at price actually controls
The compare-at field isn’t a percentage or a toggle. It’s a dollar figure stored per variant, and its only job is to appear crossed out beside the real price whenever the real price is lower. A variant priced at $30 with a compare-at of $40 shows “$40 $30” on the product page. Set compare-at to the same number as price, or below it, and Shopify hides the comparison as though the field were empty. Because it’s a plain number rather than a computed discount, a bulk change to price without a matching change to compare-at is a quiet way to break the display: the crossed-out figure stays exactly where it was, and it no longer matches what shoppers are actually being charged.
Setting compare-at with Edit prices
From the Products page, filter to the set you want, select those products, and open Edit prices from the action bar. The panel has separate controls for price and compare-at, each settable to an exact value or adjusted by a percentage or a flat amount, and you choose whether the compare-at instruction runs at all. Use this when the rule is identical for every selected product, such as setting every item in a collection to a comparison 20 percent above its current price. Before confirming, the panel reports how many products and variants are about to change. That count is the only preview you get, so check it against what you filtered for before clicking through.
Using the bulk editor grid for uneven values
When the new compare-at figures don’t follow one formula, such as a supplier’s suggested retail prices pasted in per SKU, the bulk editor grid fits better. Open it from the Products page toolbar, add the compare-at price column if it isn’t already showing, and paste or type values directly into the rows. The grid treats price and compare-at as ordinary columns with no relationship enforced between them, so nothing stops a compare-at column from landing lower than the price column beside it. Sort the grid by price first if you want to eyeball whether the two columns still make sense together before saving.
The blank-versus-zero problem when a sale ends
Ending a sale usually means moving the old compare-at number back into price and clearing compare-at, not leaving it in place. A row where the previous compare-at value sits untouched after price returns to normal quietly reactivates a discount on the storefront nobody intended, since compare-at above price is all Shopify needs to show a markdown. The bulk editor grid lets you clear a cell to genuinely blank, which differs from typing a 0 into it. A blank compare-at hides the comparison. A compare-at of 0 hides it too, since 0 isn’t higher than the price, but the field still carries a real value that shows up in exports and in any future bulk edit that touches the column. Clear the cell rather than zeroing it out if the field is meant to be empty again.
Checking the result before it reaches shoppers
Neither Edit prices nor the bulk editor grid shows a full before-and-after list of what changed, only a product and variant count. After saving, spot-check a handful of storefront pages across the batch instead of trusting the admin grid alone, since the admin can show the numbers you just typed while a connected sales channel still displays the old pair for a few minutes. On a large batch, filtering the Products page by price against compare-at afterward, or exporting both columns, catches a row where the two numbers ended up in the wrong relationship faster than opening each product one at a time. Our guide to bulk editing prices in Shopify covers the price side of this same workflow, and increasing all prices by a percentage walks through the compounding that happens when compare-at rides along with a percentage change on an item already discounted.
Where a preview closes the gap
SafeBulk includes compare-at price among the fields a job can touch, and before anything saves it shows the literal current and proposed value for every row, not just a count. SafeBulk reverses edits that SafeBulk made. It cannot restore products or variants you deleted through Shopify itself, or changes made by other apps: those never pass through our snapshot. For a compare-at batch specifically, that mostly means catching the row where clearing the field landed on zero instead of blank, or where a filter pulled in items still on sale, before it reaches a shopper rather than after. Seeing how bulk pricing apps stack up is worth doing if compare-at is a field your store touches more than once a season. Keeping a copy of the compare-at values from before a batch, the same way you would for price itself, is covered in our guide to backing up before a bulk edit.
Whichever tool runs the batch, spot-check a few storefront pages before calling the job finished, and don’t let a product count stand in for actually looking. Install SafeBulk from the Shopify App Store if a real before-and-after view is what you’re after.
FAQ
Does changing price automatically update compare-at price in Shopify?
No. Price and compare-at are separate fields everywhere in Shopify admin, including Edit prices and the bulk editor grid. Raising price without touching compare-at narrows or removes the discount the storefront displays, since the gap between the two numbers shrinks.
Why isn’t the strikethrough price showing after I set compare-at?
Shopify only displays compare-at as a strikethrough when it’s set to a number higher than the actual price. If compare-at is equal to price, lower than price, blank, or zero, the storefront shows a single price with no comparison.
What’s the difference between a blank compare-at field and a compare-at of 0?
Both hide the strikethrough display, since neither is higher than price, but they aren’t the same underlying value. A blank field means no compare-at is set at all. A zero means the field holds an actual number, which shows up as a real value in exports, reports, and any future bulk edit that touches that column.
Frequently asked questions
Does changing price automatically update compare-at price in Shopify?
No. Price and compare-at are separate fields everywhere in Shopify admin, including Edit prices and the bulk editor grid. Raising price without touching compare-at narrows or removes the discount the storefront displays, since the gap between the two numbers shrinks.
Why isn't the strikethrough price showing after I set compare-at?
Shopify only displays compare-at as a strikethrough when it's set to a number higher than the actual price. If compare-at is equal to price, lower than price, blank, or zero, the storefront shows a single price with no comparison.
What's the difference between a blank compare-at field and a compare-at of 0?
Both hide the strikethrough display, since neither is higher than price, but they aren't the same underlying value. A blank field means no compare-at is set at all. A zero means the field holds an actual number, which shows up as a real value in exports, reports, and any future bulk edit that touches that column.