How do I import products, stock or orders into Shopify with a CSV?

By Ranjit Bhinge, founder of Blur Studio · Updated · 8 min read

Short answer: Shopify, an ecommerce platform for running an online store, lets you import three things with a CSV (a plain spreadsheet file): products, stock levels and customers. Go to Products, then Import, add your file and start the import. Each file must be 15 MB or smaller and must use Shopify's exact column headers. Orders are the exception: the product, inventory and customer files do not import orders. If you do the same import every week, a CSV stops being the right tool and an automatic feed is.

Ranjit Bhinge

You have a spreadsheet of products, stock counts or customers and you want it inside Shopify without retyping every row.

I'm Ranjit, and I run Blur Studio: 15+ years building software, 120 apps taken live, and clients who have gone on to raise $10M+. I build AI systems and processes that help businesses do a lot more with a lot less time. I also work differently from most of what else is out there, more on that further down this page. Say hello.

What a CSV import can and cannot do

A CSV file is a text file where each line is a row and commas separate the columns. Excel (Microsoft's spreadsheet program) and Google Sheets (Google's free one) can both save one. Shopify uses CSV files for bulk work, and it has a separate file type for each job. Mixing them up is the first mistake most people make.

You want to importWhich fileWhere in Shopify
New products or product changesProduct CSVProducts, then Import
Stock counts, especially with more than one locationInventory CSVProducts, then Inventory, then Import
Customer listCustomer CSVCustomers, then Import
OrdersNo Shopify file for thisSee the orders section below

Shopify's help pages also say a CSV cannot delete products in bulk and cannot bulk change which sales channels a product shows on. For deleting, use the bulk actions on the Products page. Shopify also has a bulk editor, a spreadsheet-style screen inside the admin. If you only need to change prices on 200 products already in your store, try the bulk editor first.

Before you start: five checks

  1. Back up your products. Shopify says a product import cannot be canceled once it starts, and there is no history of past imports. The store's activity log is where you review recent changes. Export your products first so you have a copy.
  2. Keep the file at 15 MB or less. That limit applies to product, inventory and customer files. Split bigger files and upload them one by one.
  3. Save as UTF-8. UTF-8 is a text format that handles accents and symbols. Shopify says to save product files as UTF-8 with LF-style line endings. Google Sheets saves in UTF-8 by default. Other programs may need an extra step.
  4. Do not sort the file in Excel or Numbers (Apple's spreadsheet app). Shopify warns that a sorted file can cut products off from their image links, and its export page warns that importing a sorted file might overwrite existing products with bad data that cannot be recovered.
  5. Test with a few rows. Import five products before you import five thousand.

How to import products, step by step

  1. Get the template. Shopify's help page "Using CSV files to import and export products" has a sample file. Download it, open it in Google Sheets, and delete the two example products. If you already have products, the easier template is an export of your own store.
  2. Keep the header row exactly as it is. The first line must be the column headers, spelled and capitalized as in the sample. Shopify says header names are case sensitive, so Handle is not the same as handle. Older files that use names like Body (HTML) still work, because Shopify keeps backward compatibility, but the current sample is the safest guide.
  3. Fill in one row per product, or per variant. A variant is one version of a product, such as a size or color. The only required column for new products is Title. If a product has variants, the URL handle is also required. The handle is the product's web-address name, and it can contain letters, dashes and numbers but no spaces.
  4. Handle variants correctly. On the first row, fill in everything for the product and its first image. On the next rows for the same product, repeat only the handle, then skip Title, Description, Vendor and Tags and fill in the variant details. A product can have up to 3 options, such as Size, Color and Material.
  5. Use plain numbers. Prices go in as 9.99, with no currency symbol. Weight goes in grams as a whole number. Shopify's example: 4 pounds is 1814.
  6. Put images on a public web address. The CSV holds links, not pictures. Shopify downloads each image from its link during the import. Links must be publicly reachable. You can host pictures in Content, then Files, in your admin, or on another image host.
  7. Import. In the admin go to Products, click Import, click Add file, pick the CSV and click Upload and continue. Check the summary and click Import products. Shopify sends a confirmation email to the account email. Shopify suggests the Chrome browser to avoid upload trouble.

The overwrite box, the one that causes damage

The import screen has a box called "Overwrite products with matching handles". Leave it unticked and any row whose handle already exists is ignored. Tick it and Shopify replaces the stored values with the values in your file. Three rules from Shopify's help pages matter here:

  • A blank cell in a column that is in your file wipes the stored value. If the Vendor column is in your file but empty, your vendors are erased.
  • A column left out of the file is left alone.
  • If you include a variant column such as SKU but leave out Option1 name and Option1 value, the variant options are deleted. Changing option values also creates new variant IDs, which can break apps that rely on the old ones.

My rule: when updating, export first, change only the cells you mean to change in that export, and import that same file back.

How to import stock levels

The product CSV has an Inventory quantity column, but Shopify says it works only for stores with a single location. If you have more than one location, or you just want a clean stock update, use the inventory file.

  1. Go to Products, then Inventory, and click Export. Choose a location, or all locations.
  2. Pick "All states" (recommended by Shopify) or "Available" only.
  3. Open the file. In the All states file, change the "On hand (new)" column. In the Available file, change the number under each location name.
  4. Use whole numbers only. Negative numbers and 0 are allowed. Write Not stocked for a product never stocked at that location.
  5. Back in Inventory, click Import, add the file, and click Start import.

The All states file has a safety feature. It also holds "On hand (current)", the count when you exported. If stock changed after your export, say a sale happened, those rows are refused and Shopify emails you the details. That protects you from overwriting a newer number with an older one. The location name must match your Shopify location exactly, including capital letters.

How to import customers

Download the customer CSV template from the Customers area help page. The Email column must exist, though its value can be blank. Header names are not case sensitive for customers. Marketing consent columns (email, SMS, WhatsApp) accept only yes or no.

  • Files must be 15 MB or less and saved as UTF-8.
  • Duplicate emails or phone numbers inside the file are skipped, and only the last copy is imported.
  • Passwords cannot be moved. Customers have to be invited to set a new one.
  • If you overwrite existing customers that share an email or phone number, all their data is replaced, including the import tag.

Only set a customer to yes for email marketing if they actually opted in. Shopify warns that adding a bought email list can hurt your sender reputation.

Can Shopify's CSV import orders?

Not with the files above. Shopify says order information cannot be imported with the customer CSV, and the Total Spent and Total Orders columns in that file are ignored. The product and inventory files do not carry orders either. If you need old orders in your new store, you need an import app from the Shopify App Store, or a developer. Check the app's own listing for what it brings across (refunds, tracking, dates) before you pay for it.

A worked example with made-up figures

A candle seller has 120 candles in a spreadsheet, each in 3 sizes, so 360 variant rows. She downloads Shopify's sample, deletes the two examples and pastes her data under the headers. She fills Title, Description, Vendor and Tags only on the first row of each candle. Handles are lowercase with dashes, like lavender-soy-8oz-candle. Prices are plain numbers. She imports 10 candles first. Two have a broken image link. She fixes the links, then imports the other 110 as a second file. Total file size is well under 15 MB, so no split is needed. The whole job takes an afternoon the first time.

Next month she gets new stock counts. Now she uses the inventory file, not the product file, because only the numbers changed. That avoids any risk to her descriptions.

When repeat imports should become an automatic feed

A CSV is a good tool for a one-time move or a small catalog. It is a poor tool for a weekly chore. Signs you have crossed the line:

  • You do the same supplier import every week or every day.
  • Stock counts come from a supplier or warehouse file and are stale within hours.
  • Someone has to clean the same messy columns each time.
  • One missed import has led to an oversold item.

An automatic feed means a small program pulls the supplier's file or system on a schedule, cleans it, and pushes changes into Shopify through its API (the way programs talk to Shopify directly). That is a modest build. If your data currently lives in a tangle of sheets, my guide to turning an Excel sheet into a web app covers the step before that, and the inventory management system guide covers when one system should own your stock numbers. For ideas on automating repeat office jobs, see business process automation.

Common mistakes

  • Using the product file to change stock in a multi-location store.
  • Ticking the overwrite box with a half-empty file.
  • Saving with curly quotes or the wrong encoding. If your import fails, read Shopify CSV import errors and how to fix them.
  • Letting a supplier file go in untouched. If cleaning it takes hours, see how AI can clean a messy supplier file.
  • Exceeding the 15 MB limit and assuming the import is just slow.

How I'd approach this

I would first decide whether this is a one-time job or a repeat job. For a one-time job I would export a few existing products, copy that header row, build the import file under it, and test with ten rows. I would never tick the overwrite box until I had read the file column by column. For a repeat job I would stop after the second time and ask what the real source of the data is. If it is a supplier feed or a warehouse system, a scheduled sync saves more time than any CSV habit. If you want help deciding which of your store's jobs deserve that, the AI for ecommerce stores guide is a good start.

Questions people ask

How do I upload a CSV file to Shopify?

In your Shopify admin go to Products and click Import. Click Add file, choose your CSV, and click Upload and continue. Review the summary and click Import products. Stock levels use Products, then Inventory, then Import. Customers use the Import button on the Customers page.

Where do I get the Shopify product CSV template?

Shopify's help page "Using CSV files to import and export products" has a download link for a sample file. It includes two example products that you must delete before importing. You can also export your own products and use that file's header row. Keep every header spelled and capitalized exactly as in the sample.

Can Shopify's CSV import add orders?

No. Shopify says order information cannot be imported with a customer CSV, and its product and inventory files do not carry orders either. Moving old orders needs an import app from the Shopify App Store or a developer. Check what the app brings across before you buy it.

What is the maximum size of a Shopify CSV file?

Product, inventory and customer CSV files are each limited to 15 MB. If an upload fails or times out, Shopify says to split the file into smaller files and upload each one. If a different error appears, see the list of Shopify CSV import errors.

Does a CSV import overwrite my existing products?

Only if you tick "Overwrite products with matching handles". Left unticked, rows whose handle already exists are ignored. Ticked, the file's values replace the stored ones, and blank cells in columns that are in your file erase the stored value. Export first, edit that export, and import it back.

Should I keep importing CSV files, or automate it?

Use CSV for one-time moves and small catalogs. If the same import happens every week, an automatic feed that reads the source and updates Shopify on a schedule is safer and cheaper in time. My business process automation guide explains the idea in plain words.

More in this topic: Ecommerce: Shopify and marketplace sync (19 guides) →

Sources

Ready for the next step?

A 30 minute call. If you do not need me, I will tell you.

Ranjit Bhinge You talk to me, Ranjit. I reply within a few hours.

Not sure what you need? Tell me what is going on. I will point you the right way, even if it is not me.

Blur Studio · 30 minute call

Book a 30 minute call

You talk to me, Ranjit. If you do not need me, I will tell you.

  • We talk about your business and what is going on.
  • You leave with a clear next step, even if it is not me.
  • I reply to every message within a few hours.
Loading the calendar…