Your supplier raised costs, or you're moving the whole catalog to a new margin, and the change touches 3,000 products and several times that many variants. By hand it takes days. In one big import it feels like a gamble, because one wrong column can blank a field customers see or delete variants outright.
The safe order is short. Export every product to a CSV file and keep it untouched as your backup. Reprice a small test batch and check it on the storefront. Then import the rest in batches, with only the price columns plus the columns Shopify needs to match each variant. Shopify can't undo an import, so the backup is your way back.
What does a bad bulk price change cost you?
Work it out on your own numbers before you start. Three lines on a worksheet are enough:
- Checking time. The number of variants you're changing, times the minutes someone spends checking each one by hand.
- Wrong-price orders. The orders you'd have to refund or honor if wrong prices stayed live for a day. Use one of your normal days of orders as the guide.
- Clean-up time. The hours it would take to find and fix the wrong ones without a record of what changed.
The third line is the one people forget. Shopify's help page says product imports "can't be canceled once they begin, and you can't view a history of past imports." If you don't keep your own before-and-after files, nobody can tell you exactly what the import changed.
Why do bulk price changes go wrong?
The cause is almost never the arithmetic. It's how Shopify stores prices and how its import treats your file.
Prices live on variants, not products. Every size, color or pack quantity carries its own price. A 3,000-product catalog where each item comes in three sizes holds 9,000 prices, and a change that looks right on the product page can be wrong on the third variant down.
An import overwrites what you include, blanks included. With "Overwrite products with matching handles" turned on, Shopify replaces the values in every column your file contains. Its help page says a blank non-required column "is overwritten as blank." A column you delete from the file, by contrast, keeps its current value. Deleting columns is safe. Emptying them is not.
Leaving out the option columns deletes variants. This is the trap that breaks stores. Shopify's CSV guide says: "If you don't include the Option1 name and Option1 value columns, then a new default variant is created and existing variants are deleted." A stripped-down file of handles and prices looks tidy and does real damage.
Compare-at prices don't move on their own. Shopify shows a product as on sale only when the compare-at price is higher than the price. Cut prices without touching compare-at, and products can suddenly look discounted. Raise them above the old compare-at price, and a sale you meant to keep disappears. Shopify also notes that a compare-at price of zero isn't the same as an empty one; to remove it, clear the cell completely.
Some prices live somewhere else. If you sell in more than one market or run B2B catalogs, prices can be set per catalog. Shopify says a price set by hand in a catalog overrides that catalog's overall price adjustment. Change the main price and those hand-set prices stay where they were.
The spreadsheet changes your data. Microsoft's own support page says Excel "automatically removes leading zeros, and converts large numbers to scientific notation." Open the export, save it, and SKUs like 00451 or long barcodes can come back altered.
How do you change thousands of prices yourself?
This is the order we'd follow for a change of a few thousand variants.
- Pick a quiet window and freeze other product edits. Two people editing products during an import makes the before-and-after check meaningless.
- Export everything. In your Shopify admin, go to Products, click Export, choose All products and CSV file for Excel, Numbers, or another spreadsheet program, then click Export products. Shopify downloads the file in your browser or, if any product has more than 100 variants, emails it to you. Save it with the date in the name and never edit it. Shopify notes that exports can time out with thousands of variants; if that happens, export in filtered batches, by vendor or product type.
- Make a working copy with only the columns you need. Keep URL handle, Title, Option1 name and Option1 value (plus Option2 and Option3 if you use them), SKU, Price and Compare-at price. Shopify's guide lists URL handle and Title as the only required columns when updating. Delete every other column rather than blanking it. Older templates may use older names such as Handle; Shopify accepts those.
- Protect the text columns. Format SKU and barcode columns as text before you work, or import the file into Excel with those columns set to text, so leading zeros survive.
- Calculate new prices in a separate column first. Apply your rounding (for example, prices ending in .99) there. Add a column showing the percentage change from the old price, and sort by it. Anything far outside your planned change is a typo or a rule you forgot.
- Run a test batch. Pick 20 to 50 products that cover every shape in your catalog: single-variant products, products with two or three options, items on sale and items in a B2B or international catalog. Go to Products, click Import, then Add file, select Overwrite products with matching handles, click Upload and continue, review the details and click Import products. Then check the admin, the product page, the cart and any other sales channel.
- Import the rest in batches. Shopify's limit is 15 MB per file, and it suggests splitting a file that fails or times out. Batches by vendor or product type also make a mistake easier to find.
- Check the result against your plan. Export again, then match the new export to your working file on SKU (a lookup formula is enough) and list every variant where the price differs. That list should be empty.
- Check catalog prices separately. Go to Markets, then Catalogs, and export the catalogs you use. Shopify's export includes only products with fixed prices, which are exactly the ones your main import didn't touch.
- Keep the three files: the original export, the file you imported and the after-export. Together they are your change record.
For a few hundred products, the bulk editor can be quicker. Go to Products, tick the products, click Bulk edit, use Columns to add the price and compare-at price, edit, then click Save. Shopify's own page points you to a CSV file "to bulk edit a larger number of list items."
When does doing it yourself stop working?
The steps above hold for a flat change, such as everything up 6% and rounded. They strain when:
- Prices follow rules, not a single percentage. Cost times a markup that varies by category, minimum advertised prices, or tiers by customer group need a calculation you can check, not hand edits.
- Another system sends prices to Shopify. If an inventory system or ERP (the business system that runs orders and stock) pushes prices on a schedule, change the prices there, or the next sync may put the old ones back.
- The import errors and you can't see why. Shopify's guide says some columns depend on others, and a file missing a column your data depends on fails with an error. Tracing that across thousands of rows takes time most store teams don't have.
- It happens every quarter. A change you repeat each time a supplier list arrives is worth turning into a repeatable process rather than redoing by hand.
What are your options?
| Option | Good for | Watch for | What you keep |
|---|---|---|---|
| Do it yourself with Shopify's export, bulk editor and CSV import | Flat changes on a catalog you know well | No undo, no import history, the variant and blank-column traps | Your own before-and-after files, if you save them |
| Buy a bulk-edit app, such as Matrixify, which lists store backup and scheduled, repeating jobs | Repeated large changes, with your team running the app | Someone still has to learn the app's file format and check the results | The app's files and history while you subscribe |
| Hire a freelancer | A one-off change with a clear brief | Quality varies; ask how they'll check every variant | Whatever files they hand back |
| An outside team that learns how you work and builds on your data | Rule-based pricing, several sales channels, or a repeat job | Takes a walk-through and sample data before the work starts | The change log, the files and the method, documented |
What can you hand off, and what should stay with your team?
Hand off the mechanical parts: the export, the working file, the price calculation, the test batch, the import and the comparison.
Keep the decisions: the new prices or the rule behind them, sign-off on the test batch, and the final check of your best sellers on the live store. Keep the owner login, too. Shopify lets you give someone a staff role limited to products, with separate permissions to edit prices and to edit costs, so nobody needs your password.
Questions to ask anyone you hire, us included
- Will you take a full export before touching anything, and give me a copy?
- Which columns will your import file contain, and why each one?
- How will you match variants, and what happens to products with two or three options?
- What will you do with compare-at prices and catalog prices?
- Can I check a test batch before the rest goes in?
- How will you show me that every variant matches my price list afterward?
- What access do you need, and when will you remove it?
If you'd rather show us the change on screen first, a walk-through takes 30 minutes. You can also read how we approach cleanups and bulk changes.
FAQ
Can I undo a Shopify product import? Not with a button. Shopify says imports can't be canceled once they begin and keeps no import history. Your way back is to re-import the columns you changed from the export you took before you started.
Will a price import change my inventory or descriptions? Not if those columns aren't in the file. Shopify says a column left out of the file keeps its current value. A column that's present but blank is overwritten as blank.
How big can the CSV file be? Shopify's limit is 15 MB per product CSV. If an upload fails or times out, split it into smaller files.
Should I use the bulk editor or a CSV file? The bulk editor suits a few hundred products you can see and check on screen. For thousands, Shopify itself points to a CSV file.
Will my B2B or international prices change too? Prices that follow a catalog's percentage adjustment are calculated from your main prices. Prices set by hand in a catalog override that adjustment, so review them under Markets and Catalogs.