Shopify Import Clears Compare-At Price: Why It Happens

On this page
A fashion accessories merchant spent two weeks preparing a summer sale campaign. They set compare-at prices across 280 products: the original retail price in the compare-at field and a reduced sale price in the price field, so every product showed a sale badge and a percentage-off label on the collection page. Ads were live. On day three of the campaign, they ran a routine restocking import using a Shopify CSV export taken the week before the sale started. That export had blank compare-at price cells for every product. The import cleared every compare-at price in the store. Sale badges disappeared across the entire catalogue. The campaign continued running, driving paid traffic to a storefront where nothing appeared to be on sale.
The import completed without errors. Shopify raised no warning.
Why a Shopify Import Clears Compare-At Price
Shopify applies the same declarative rule to every column in a product import, including Compare At Price: whatever value is in the cell gets written to the product. A cell containing a compare-at price sets that price. A cell that is blank clears the existing compare-at price and removes the sale badge.
The Compare At Price column is included in every Shopify admin product export by default. A merchant who exports their catalogue to update prices or adjust inventory receives a file that includes the Compare At Price column, populated for products that had a compare-at price at export time, and blank for products that did not.
A sale campaign that sets compare-at prices for the first time changes the product data after the export was taken. The export file, captured before the campaign began, has blank compare-at values for all affected products. When that export is re-imported during the campaign (even for an unrelated reason like updating a cost field or correcting a product type), the blank compare-at values in the file overwrite the campaign values that were set after the export was taken.
Why the Overwrite Is Invisible Until Customers Notice
The import processing screen shows field counts, progress bars, and a completion message. It does not show which fields changed per product, and it does not flag that Compare At Price values will be cleared across hundreds of products.

The effect is immediate but not immediately obvious. Compare-at prices are not visible in Shopify's default product list view. The admin shows title, status, inventory, and type. A merchant checking their admin after a routine import sees the expected product count, the correct status indicators, and no errors. Nothing in the admin interface signals that 280 compare-at prices were just cleared.
The first signal is usually customer-facing: a storefront that no longer shows sale badges or percentage-off labels. For merchants running paid campaigns to a sale, this is the worst place to discover the problem: ad spend continues while the storefront conversion rationale disappears.
The import succeeds. The sale ends. Shopify raises no error and shows no change in the admin product list.
Analytics can also surface the problem, but with a lag. A drop in "on sale" product count, a change in average order value, or a decline in collection conversion rate are all downstream signals. The root cause, a cleared Compare At Price column, may not be connected to an import that ran hours or days earlier without obvious consequences.
Three Scenarios That Clear Compare-At Prices During Import
Re-Importing a Pre-Campaign Shopify Export
This is the most common trigger. A merchant exports their catalogue before a sale campaign to use as a template for price updates or product additions. The export correctly reflects the catalogue state at that moment: no compare-at prices, or compare-at prices from a previous sale that has since ended.
The campaign runs, compare-at prices are set, and sale badges appear on the storefront. At some point during the campaign, the merchant uses that original export as the basis for a routine update. The file still has the pre-campaign compare-at values: blank for most products, or the old values from the previous sale. Re-importing it writes those stale values back.
The assumption that importing your own Shopify export is a safe operation is reasonable but wrong. A Shopify export re-imported to the same store is not a neutral operation. Every mapped column is written to every product, regardless of what currently exists. The age of the export determines whether the values are current or stale.
A Supplier CSV With a Compare At Price Column
Some supplier price lists include a column labelled "RRP", "List Price", "Was Price", or "Original Price" that merchants map to the Shopify Compare At Price field when setting up their initial import configuration. That mapping, saved in an import profile, runs on every subsequent import from that supplier.

When the merchant sets their own campaign compare-at prices (higher than the supplier's RRP in many cases, or using a different pricing strategy), the next routine supplier price update import overwrites the Compare At Price field with the supplier's values. If the supplier file has blank values for products not in their current price list, those products lose their compare-at prices entirely.
Recovery and prevention
Spreadsheet Editing That Clears the Column
A merchant exports products to make bulk edits in a spreadsheet application. When selecting columns to modify, a team member inadvertently selects a wider range and deletes the content of the Compare At Price column across all rows. The spreadsheet still has the column header; the cells are empty. The subsequent import writes blank compare-at prices to every product in the file.
Recovering Cleared Compare-At Prices
Recovery depends on how recently the import ran and what records exist.
- 01Open Import History in Importier and locate the import that cleared the compare-at prices. The Import Undo function reverts the entire batch, restoring each product to its pre-import state including all compare-at price values. The undo window covers the last 20 import sessions.
- 02If the undo window has closed or the import was run through Shopify's native import rather than Importier, locate the most recent Shopify export taken after the campaign compare-at prices were set. That export's Compare At Price column contains the correct campaign values before they were overwritten.
- 03Trim the recovery export to two columnsHandle and Compare At Price. A two-column import that maps only Handle (for product matching) and Compare At Price restores the campaign values without touching any other product field.
- 04Preview the import in Importier before pushing. The preview shows which fields will change per product. Every product should show Compare At Price updating from blank to the campaign value, and no other field should show changes.
- 05Push the import. Compare-at prices are restored and sale badges return immediately to the storefront.
For stores where no backup export exists and the undo window has closed, compare-at prices can be re-entered manually through the Shopify admin product editor for small catalogues. For catalogues of 50 or more affected products, the most reliable path is to export the current product list, fill in the Compare At Price column using the original campaign pricing logic, and re-import with only the Handle and Compare At Price columns mapped. Adding compare-at prices to Shopify products in bulk covers the full workflow for setting sale prices across a large catalogue from scratch when no backup file is available.
Preventing Compare-At Price Overwrites
The prevention principle is the same one that protects tags, SEO titles, and metafield values: map only the columns that need to change in a given import.
For inventory updates: map Handle, location, and quantity columns only. Compare At Price has no role in a stock level update.
For cost price updates: map Handle and Cost columns only. Compare At Price and Price should both be excluded from a cost-only import.
For routine supplier price updates: map Handle and the price columns you need to update. If your campaign compare-at prices differ from the supplier's RRP or were set independently, do not map the supplier's RRP column to Compare At Price during a campaign.

Use Importier's import preview. Before pushing any import, Importier shows which fields will change for each product in the batch. A preview that shows Compare At Price changing on dozens or hundreds of products during what was supposed to be an inventory import is the signal to stop, unmap the column, and re-preview before pushing.
- Export taken before campaign has blank Compare At Price for 280 products
- Import maps all columns including Compare At Price
- 280 products lose their sale badge during active campaign
- Storefront shows full retail prices while paid ads are running
- Recovery requires finding a backup export or manual re-entry
- Price update file contains only Handle and Price columns
- Compare At Price column deleted from file or unmapped in Importier
- Shopify updates prices without reading Compare At Price
- Campaign sale badges remain intact across all 280 products
- No recovery step required
Build separate import profiles for campaigns and routine updates. An import profile saved for routine inventory restocking should map only Handle and inventory columns. A profile built during the initial campaign setup should map Handle, Price, and Compare At Price together. When both profiles exist, it is harder to accidentally select the wrong one. Importier's profile names are visible at the start of the import wizard, before any data is written. Shopify import profiles for repeat supplier imports explains how to set up profiles that separate import types so the wrong columns cannot be mapped by accident.
The same mechanism that clears compare-at prices during an import applies to product tags, SEO titles, and metafield values. The declarative rule is consistent: whatever value is in a mapped column gets written to the product. For a full account of how tags are cleared by this rule, Shopify import removes product tags walks through the same pattern applied to tag taxonomies. For how SEO title work is reversed during routine imports, Shopify import overwrites SEO titles covers the same mechanism applied to the SEO Title field.
Shopify's product CSV import documentation specifies the Compare At Price column format and the exact behaviour for every column in the product CSV. For merchants running Google Shopping campaigns, a cleared compare-at price affects the feed: Shopify sends compare-at price as the sale price signal to Google, so clearing it removes the sale pricing from Shopping ads as well as the storefront. Google Merchant Centre's product data specification documents the price and sale_price attributes that control how products appear in Shopping ads.
Key Takeaways
Shopify's import applies the same declarative rule to the Compare At Price column as it does to every other field: whatever value is in the cell gets written to the product, including blank. A stale export taken before a sale campaign has blank compare-at values, and re-importing it during the campaign clears every compare-at price without raising an error.
- Why it happens: the export pre-dates the campaign. Compare-at prices set after the export was taken are not in the file. Re-importing the export overwrites the current values with the stale blanks.
- Why it's invisible: Shopify's admin product list does not show compare-at prices. The import completes with a success message. The effect surfaces on the storefront, where sale badges disappear.
- Recovery: Import Undo in Importier if the import was run there and the undo window is open. Otherwise, re-import a backup export with only Handle and Compare At Price columns mapped.
- Prevention: map only the columns being updated. Price updates do not require the Compare At Price column unless the campaign prices are changing too. Preview imports in Importier before pushing.
- Profiles for campaign imports. Save a separate import profile for each import type. A routine restocking profile that maps only Handle and inventory columns cannot accidentally clear compare-at prices set by a separate campaign profile.
Protect your compare-at prices on every import at importier.app.
Set up your first import in under five minutes.
Importier brings products into Shopify with AI descriptions, category metafields, and data enrichment on every run.


