Shopify Product CSV Import and Export: A Practical Guide

How the Shopify product CSV works, how variants and images map to rows, and a safe routine for bulk editing and moving products between stores.

The product CSV is the most useful bulk tool Shopify has. With it you can edit hundreds of prices at once, back up your catalog, and move products from one store to another. It is also easy to get wrong: one misplaced row can create a duplicate product or wipe a field you meant to keep.

This guide explains how the file is structured and gives a routine that keeps imports safe.

How the file is structured

One product, several rows

A product CSV is not one row per product. It is one row per variant (and extra rows for extra images). Rows that share the same handle belong to the same product.

  • The first row of a product carries product-level fields: title, description, vendor, type, tags and status.
  • Following rows with the same handle carry only variant fields, such as option values, SKU, price and inventory, or an extra image URL.

If you sort the file by anything other than handle, you can split a product’s rows apart. Keep rows for one product together.

The handle is the key

The handle is the product’s URL slug, for example linen-shirt-white. On import, Shopify uses it to decide whether a row updates an existing product or creates a new one. That has two consequences:

  • Change a handle in the file, and the import creates a new product instead of updating the old one.
  • Two different products with the same handle in the file are merged into one.

Treat the handle column as read-only unless you mean to create products.

Options and variants

Each variant is defined by up to three options, such as Size, Color and Material. The option names sit on the product’s first row; each variant row carries its values. A shirt in three sizes and two colors is six variant rows under one handle.

Images

Images are referenced by public URL. Shopify downloads them during import, so the URLs must be reachable. To add several images to one product, add extra rows with the same handle and only the image columns filled.

A safe routine for bulk edits

  1. Export first. Export the products you want to change, or the whole catalog, before editing anything. That file is your backup.
  2. Edit a copy. Never edit the backup. Work on a copy and keep the original untouched.
  3. Change only the columns you mean to change. Leave other columns as exported. An empty cell can overwrite a value with nothing.
  4. Keep the encoding. Save as UTF-8 CSV. Some spreadsheet apps change encoding or reformat numbers; barcodes with leading zeros and long numbers are the usual victims. Format those columns as text before editing.
  5. Test with a few products. Import a file with three or four products first and check them in the admin before importing the rest.
  6. Import with overwrite only when you mean it. Shopify asks whether to overwrite products with matching handles. Overwrite updates existing products; without it, matching products are skipped.
  7. Check the result. Spot-check prices, variants, inventory and images after the import finishes.

Moving products between stores

The same file format is how you copy a catalog to a second store, for example a new regional store:

  1. Export from the source store.
  2. Remove columns or rows you do not want to carry over, such as products that do not sell in the new region.
  3. Adjust prices for the new store’s currency if needed.
  4. Import into the target store and check a sample.

Inventory quantities are tied to locations, which differ between stores, so plan to set stock in the new store separately.

Common errors and fixes

Problem Likely cause
Duplicate products after import Handles changed, or extra spaces in the handle
Variants missing Rows for one product were split apart, or option values are blank
Images not showing Image URL is not public, or it redirects to a login page
Barcodes lost leading zeros Spreadsheet treated the column as a number
Accented characters broken File was not saved as UTF-8

Shopify also limits the size of a product CSV, so split very large catalogs into several files.

Doing this from one app

Storefleet Store Ops lets you create and update products, import them from the CSV template and export your catalog from inside Shopify admin, and build manual or automated collections with their own sort order. With several stores linked to one workspace, you switch between stores on the same screen instead of logging in to each admin. For the bigger picture, see how to manage multiple Shopify stores.

Sign in to your workspace

Each workspace has its own address: <workspace>.getstorefleet.com. Enter your workspace name, or paste its address, and we take you to its sign-in page.

You will go to

New to StoreFleet? Create a workspace