Lorixen.
EN

Editing Hundreds of Products at Once: CSV and Bulk Editor

Short answer: For quick changes to a few fields on products you can see on screen (prices, tags, stock, SEO titles), use the bulk editor in your Shopify admin. For structural changes across hundreds of products, or anything you'd rather prepare in a spreadsheet, export a product CSV, edit only the columns you need, test-import a handful of rows, then import the rest with "Overwrite products with matching handles". Always keep an untouched export as a backup, because Shopify says a CSV import can't be cancelled once it starts and there's no import history to roll back.

Bulk editor or CSV?

Job Bulk editor CSV
Change prices on 40 products in one collection ✔
Add a tag to every product from one supplier ✔ (or a bulk action) ✔
Rewrite 300 product descriptions prepared by a copywriter ✔
Update weights and SKUs on every variant ✔ for a few products ✔ for many
Migrate products from another platform ✔
Change product images Awkward ✔ (image URLs)
Edit variant metafields ✔ (Shopify says variant metafields aren't supported in product CSV)

The bulk editor works in the admin: select products from the list, open them in the bulk editor, add the columns you need and edit like a spreadsheet. Changes save together. It's safer for small jobs because you see each product, but it gets slow beyond a few hundred rows.

The safe procedure

1. Export

In Shopify, use the Export button on the Products page and export all products, or just the filtered set you plan to change. In WooCommerce, go to Products > All Products > Export and choose the columns and product types you want.

2. Back up

Save that export as products-backup-2026-11-02.csv and don't touch it. Shopify's import guide explicitly recommends having a backup of your product data before you start, and notes that imports can't be cancelled once running. Your backup is the only undo button.

3. Edit a copy

Open a copy in your spreadsheet, delete the columns you aren't changing, and edit the rest. Keep these columns no matter what:

  • Shopify: URL handle and Title are the only required columns when updating. If you touch anything variant-level (SKU, weight, variant price), also keep Option1 name and Option1 value. Shopify warns that leaving those out makes it create a new default variant and delete your existing variants.
  • WooCommerce: keep ID or SKU, which is how WooCommerce matches update rows to existing products. From WooCommerce 11.2, a mapped GTIN/UPC/EAN/ISBN column can be used when both are blank.

Save as UTF-8 CSV with commas as the separator. If you use Excel, Shopify suggests checking its export settings so the file really is comma-separated.

4. Test import

Make a test file containing three to five rows: a simple product, a product with several variants, and one with several images. Import it.

  • Shopify: Products > Import, add the file, and tick Overwrite products with matching handles. Matching values then replace existing ones in those columns.
  • WooCommerce: Products > All Products > Import, choose the file, and tick Update existing products. Map the columns on the next screen and read the import report for skipped rows.

Check those products in the admin and on the storefront: prices, variants, images, collections, published status.

5. Full import

Only after the test looks right, import the full file. For big catalogues, split it into batches of a few hundred rows so a problem stays small. WooCommerce's guide adds that large imports depend on your server's memory, upload limit and processing time, and recommends a backup and a small test on a staging site first.

Afterwards, spot-check a random sample and keep the backup until you're sure.

Gotchas table

Problem What happened Fix
Variants disappeared Updated variant columns without Option1 name/value (Shopify) Restore from backup; always keep option columns with variant data
Duplicate products appeared Handle changed or typo'd, so Shopify created a new product Never edit handles in the same file as other changes
Images detached or lost File was sorted in a spreadsheet before import Shopify warns sorting can break image links; don't sort, or re-export
Prices with "$" or commas rejected Currency formatting from the spreadsheet Plain numbers only, e.g. 49.95
Accented characters garbled File saved in the wrong encoding Save as UTF-8
Inventory not updating on multi-location store Shopify product CSV inventory column only works for single-location stores Use Shopify's separate inventory CSV
Market prices didn't change Market price columns only appear for some markets Manage those in market catalogues
WooCommerce update created products instead Missing or mismatched ID/SKU Export again and edit from that file
WooCommerce images failed Image host blocked the download or returned a page Upload to the Media Library first or use direct image URLs
Category names split in two (WooCommerce) Commas inside a category name Escape them with backslashes as the docs describe

A worked example (hypothetical)

A hypothetical Brisbane homewares store wants to raise every price in its "Linen" collection by 8% and add the tag linen-2027.

  1. Filter products by the Linen collection and export just those.
  2. Back up the export.
  3. In a copy, keep URL handle, Title, Option1 name, Option1 value, the variant price column and the tags column. Delete everything else.
  4. Add a formula column for the new price, round it to your price points (for example to .95), then paste values over the price column and delete the formula column.
  5. Append , linen-2027 to each product's existing tags rather than typing the new tag alone, and confirm in the test import that the old tags survived.
  6. Test-import five rows with overwrite on, check them, then import the rest.

For a job this size, the bulk editor would also work, but the CSV leaves a record of exactly what changed.

FAQ

Can I undo a Shopify CSV import?

Not directly. Shopify says imports can't be cancelled and there's no import history; the activity log shows recent changes. Re-import your backup to reverse it.

Why do column names in my old CSV look different?

Shopify keeps backward compatibility with older column names but recommends the current format. Export fresh before each big job.

Is there an app that does this better?

Bulk-editing apps exist for things like scheduled price changes or complex filters. For occasional jobs, the built-in tools are enough.

Should I let a VA or agency edit the CSV?

Yes, if you keep the backup yourself and run the test import together the first time.

If you've got a catalogue clean-up that's too big for the bulk editor, send us a sample export and what needs changing.

Sources

WhatsAppLet’s talk