Guide · updated 2026-10-28

How to Import Inventory to Shopify

Updating stock product by product doesn't scale. Shopify's inventory CSV lets you set quantities for every variant at every location in one upload. Here's how to export it, edit it and import it without overwriting the wrong numbers.

Product CSV or inventory CSV: which one do you need?

Use the inventory CSV (Products → Inventory → Import) to update stock for products that already exist in your store, at one or more locations. The product CSV's Variant Inventory Qty column is for setting stock when you create products. For managing inventory at specific locations, Shopify's own product import help says to use the inventory CSV import or the Inventory API.

Product CSV vs inventory CSV
Inventory CSVProduct CSV
WhereProducts → Inventory → ImportProducts → Import
What it's forUpdating stock of existing variants, per locationCreating or updating products
Creates productsNoYes
Changes SKUs or option namesNoYes
File size limit15 MB15 MB
GuideThis pageShopify CSV import guide

Step 1: Export your current inventory

Always start from an export, never a blank file. The export already has the exact headers Shopify expects, and the Handles, option values and location names it uses to match each row.

  1. In Shopify admin, go to Products → Inventory.
  2. Click Export.
  3. Under Export from, pick one location, or All locations.
  4. Keep the All states format. The Available format puts each location in its own column and has no protection against overwrites (see below).
  5. Choose which variants to export, such as all variants, and download the file.

Step 2: Change the On hand (new) column

Enter the new stock in On hand (new). Everything else in the file is there to identify the row or to protect you.

  • Whole numbers only. Positive, negative or 0 all work. Decimals such as 1.5 don't.
  • Blank means no change. Leave On hand (new) empty for any variant whose quantity you don't want to touch.
  • Don't edit On hand (current). It holds the stock at the moment you exported, and Shopify uses it to check nothing changed since.
  • "Not stocked" marks a location that never carries that product.
  • Columns marked "not editable", such as Committed and Available, are calculated by Shopify.

Step 3: One row per variant per location

Each variant needs a row for every location you update. Shopify finds the variant from its Handle and its option values, so the required columns are Handle, Location and Option1 Value, plus Option2 Value and Option3 Value when the product uses them. Location names are case-sensitive and must match your Shopify location name exactly.

Here's a worked example: one T-shirt in two sizes, stocked at two locations.

A multi-location inventory file
HandleOption1 ValueLocationOn hand (current)On hand (new)Result
classic-cotton-teeSWarehouse1230Warehouse stock for S becomes 30
classic-cotton-teeSShop Front4Unchanged (blank)
classic-cotton-teeMWarehouse025Warehouse stock for M becomes 25
classic-cotton-teeMShop FrontNot stockedM is never carried at Shop Front

Writing shop front or Shopfront instead of Shop Front would fail that row, because the location name has to match exactly.

Step 4: Import the file

  1. In Shopify admin, go to Products → Inventory.
  2. Click Import.
  3. Click Add file and choose your CSV.
  4. Click Upload file.
  5. Check the summary, then click Start import.

The file can be at most 15 MB. If yours is bigger, split it into several files and import them one after another.

How Shopify protects you from overwrites

When the file has both On hand (current) and On hand (new), Shopify compares On hand (current) with the stock it has now. If the stock changed after your export, for example because an order came in, Shopify skips those rows instead of overwriting the new number. You get an email listing them.

The simplest habit: export, edit and import in one sitting, and leave On hand (new) blank for every row you aren't changing.

Common inventory import errors

Inventory CSV errors
ProblemCauseFix
Location rows failThe location name differs from Shopify's, even only in capital lettersCopy the location name from a fresh export.
Variant not matchedThe Handle or option values don't match a variant in your storeCopy Handle and option columns from a fresh export. This file can't rename options.
Quantity rejectedA quantity isn't a whole number, such as 1.5Use whole numbers: positive, negative or 0.
Rows skippedStock changed between your export and your importExport again and re-enter the new quantities.
A whole variant skippedPacked dimension values differ between that variant's rows, or are blank on some rows and filled on othersRepeat the same packed values on every row of the variant. The rest of the file still imports.

Shopify emails you the details of any failed rows after the import, so you can fix just those and import them again.

Can an inventory CSV add new products?

No. It updates products and variants that already exist in your store, matched by handle and option values. A row for a product Shopify can't find isn't created. Add new products first, with the product CSV or an importer, then manage their stock with the inventory CSV.

Products not in Shopify yet? Import them first

Moving from another platform? Create your catalog with the Shopify CSV import guide and the free product CSV template, or follow a migration guide. For other ways to get products into your store, see how to add products to Shopify.

If your products are on Amazon, AliExpress, eBay or a Shopify store you manage, 1Click imports them from a link, with title, description, images, variants and prices. It imports each product once and doesn't sync supplier stock or prices afterwards, so set and update your stock in Shopify.

FAQ

How to Import Inventory to Shopify: FAQ

Still stuck? Email contact@ecomfusion.net.

How do I bulk upload inventory to Shopify?

Export your inventory from Products → Inventory, enter the new stock in the On hand (new) column, and import the file on the same page with Import → Add file → Upload file → Start import. One file can update every variant at every location.

Can I import inventory for multiple locations?

Yes. Export with All locations, and the file has one row per variant per location. Set the On hand (new) value on each row. Location names must match your Shopify locations exactly, including capital letters.

What columns are required in a Shopify inventory CSV?

Handle, Location and Option1 Value, plus Option2 Value and Option3 Value when the product uses them. Start from an export so these columns are already filled in correctly.

Can I update inventory with the product CSV?

The product CSV's Variant Inventory Qty column is for setting stock when you create products. To manage stock at specific locations, Shopify says to use the inventory CSV import or the Inventory API. See our Shopify CSV import guide for the product file.

Why didn't some inventory rows import?

Usually the stock changed after your export, so Shopify skipped those rows to avoid an overwrite. Other causes are a location name that doesn't match exactly, a Handle or option value that doesn't match a variant, a quantity that isn't a whole number, or packed dimensions that differ between a variant's rows. Shopify emails you the details.

Need the products first?

Import products from Amazon, AliExpress, eBay or your own Shopify stores with 1Click. Free for 3 imports.