Update Products CSV Shopify Guide: Columns, Overwrite & Tips
To update products with a CSV in Shopify, export your products, edit the values in a spreadsheet and import the file with Overwrite products with matching handles selected. Shopify matches each row to an existing product by its handle and replaces the values in the columns you include.
It’s the fastest native way to change prices, tags, SEO fields or other details across many products. Because an overwrite import can also clear data or delete variants, knowing exactly how Shopify treats each column keeps your update safe.
How to Update Products With a CSV in Shopify
Starting from a fresh export ensures your file matches your store’s current data and uses the right column headers. Follow these steps:
- Export your products. In your Shopify admin, go to Products > Export, choose the products to include and export as a CSV for spreadsheet programs.
- Save a backup. Keep an untouched copy of the export so you can restore values if something goes wrong.
- Edit the file. Open it in a spreadsheet program and change only the values you want to update.
- Remove columns you aren’t changing. Keep the required and dependent columns, and delete the rest so existing values stay as they are.
- Save as UTF-8 CSV. Shopify only accepts UTF-8 files, and each product CSV must be 15 MB or smaller.
- Start the import. Go to Products > Import, add the file and select Overwrite products with matching handles.
- Review and confirm. Check the import details Shopify shows, then confirm the import.
- Check a few products. Open several updated products in your admin and on your storefront to confirm the changes.
Shopify sends a confirmation email after you upload the file. Imports can’t be canceled once they start, and there’s no import history, so use your store’s activity log to review recent changes.
How Shopify Matches and Overwrites Products
The URL handle is the key Shopify uses to match rows to products. With overwrite selected, a row whose handle matches an existing product replaces that product’s values in the columns you include, and without it, matching products are ignored.
Each part of your file affects the result in a specific way. This table shows how Shopify treats common situations during an overwrite import:
| Situation in your file | What happens |
|---|---|
| The handle matches an existing product | The product’s values are replaced in the included columns |
| The handle doesn’t match any product | A new product is created |
| A column is missing from the file | The existing value stays the same |
| A non-required cell is blank | The existing value is replaced with a blank |
| A variant column is included without Option1 name and value | Existing variants are deleted and a new default variant is created |
| Option1, Option2 or Option3 values are changed | Existing variant IDs are deleted and new ones are created |
The difference between a missing column and a blank cell matters most. Remove a column entirely when you don’t want to change it, because leaving it in the file with empty cells clears those values.
Changed variant IDs can break links with apps, subscriptions and integrations that store those IDs. Avoid editing option values in an update file unless you intend to recreate those variants.
Which Columns to Keep in an Update File
A trimmed file is easier to check and less likely to change data by accident. When you update products, the URL handle and Title columns are required.
Product-level fields, such as vendor, tags and status, apply to the whole product, so they only need a value on each product’s first row. Variant-level fields, such as price, SKU and barcode, depend on the variant’s option columns, so keep Option1 name and Option1 value, plus Option2 and Option3 columns if your products use them.
The exact set of columns depends on what you’re changing. This table shows which columns to keep for common updates:
| What you’re updating | Columns to keep |
|---|---|
| Prices or compare-at prices | URL handle, Title, option name and value columns, Price, Compare-at price |
| SKUs or barcodes | URL handle, Title, option name and value columns, SKU or Barcodes |
| Tags, vendor or product type | URL handle, Title, Tags, Vendor or Type |
| SEO titles and descriptions | URL handle, Title, SEO title, SEO description |
| Product status | URL handle, Title, Status |
| Product metafields | URL handle, Title and each metafield column |
Metafield columns use headers in the format Name (product.metafields.namespace.key). Copy those headers from an export rather than typing them, so they match your store’s definitions exactly.
What You Can’t Update With a Product CSV
The product CSV covers most product details, but a few changes need other tools. Plan for these limits before you start:
- Sales channel availability. The CSV controls Online Store visibility, but it can’t update availability on other sales channels.
- Deleting products. CSV files can’t delete products in bulk, so use bulk actions in your product list instead.
- Inventory at specific locations. Use the separate inventory CSV to update stock levels by location.
- Variant metafields. These aren’t supported in the product CSV, so use the bulk editor or another tool.
- Undoing an import. Imports can’t be canceled or reversed, so your backup file is the only way to restore old values.
Tips for Safe CSV Updates
A few habits prevent most CSV update problems. Keep these in mind before every import:
- Test on a few products first. Import a small file and check the results before updating your whole catalog.
- Don’t sort the rows. Sorting can separate variants and image rows from their products and overwrite them with incorrect data.
- Keep handles unchanged. A changed handle no longer matches the original product, so Shopify creates a new one.
- Format codes as text. Set SKU and barcode columns to text so leading zeros aren’t removed.
- Split large files. If a file is over 15 MB or times out, divide it into smaller files with all rows for each handle kept together.
- Use consistent formats. Enter prices without currency symbols and keep values in the format Shopify expects.
Use Apps for More Control Over Updates
Import apps add options that native CSV imports lack, such as matching products by ID, scheduling imports and mapping columns from other file formats. Some, like StoreRobo, can match on product ID or handle and pull files from a URL or FTP.
Apps also handle blank cells differently. StoreRobo, for example, keeps existing values when a non-required column is blank, while Shopify’s native import clears them, so check each tool’s rules before reusing a file.
If you manage product data across Shopify, WooCommerce or Wix, Bulkflow supports bulk import, export and updates to existing product records with field mapping. That can help when you update product data regularly and want to map fields instead of preparing every column by hand.
Common Problems When Updating Products With CSV
Most update issues come from the file’s structure rather than the data itself. Watch for these:
- Duplicate products appeared. The handles in the file changed, so they didn’t match existing products.
- Nothing changed after the import. The overwrite option wasn’t selected, so matching products were ignored.
- Some values were erased. The file included those columns with blank cells.
- Variants disappeared. A variant column was included without the option name and value columns.
- Apps lost track of variants. Option values were edited, so Shopify created new variant IDs.
- Special characters look garbled. The file wasn’t saved as UTF-8.
- The upload failed or timed out. The file is larger than 15 MB or too large to process, so split it.
Conclusion
Knowing how to update products with a CSV in Shopify lets you change hundreds of products in one step instead of editing them one by one. Keeping your handles intact, removing unchanged columns and testing a small file first makes every update predictable. We hope this guide helps you update products with CSV in Shopify with confidence. To import and update product data in bulk, you can explore Bulkflow.



