Shopify inventory CSV import: update stock quantities by location

Receiving stock · 6 min read · Updated · By the Box to Shelf team

Short version: Shopify's inventory CSV (Products › Inventory › Export / Import) sets on-hand quantities per location. Put the new total in On hand (new), leave rows you aren't changing blank, keep location names exactly as exported, and import while sales are quiet. It has no cost column.

The inventory CSV is the fastest native way to change stock for many products at once: after a big delivery, a stocktake, or when opening a new location. It's also easy to get wrong, because it replaces quantities rather than adding to them. This guide explains how it works as of November 2026.

Inventory CSV vs product CSV

Shopify has two different CSV files and they're easy to confuse:

Inventory CSVProduct CSV
WhereProducts › InventoryProducts
ChangesQuantities, per locationProduct details, prices, Cost per item
Multiple locationsYesThe Inventory quantity column only works for single-location stores
Use for receivingYesFor costs only

Step 1: Export

  1. Go to Products › Inventory and click Export.
  2. Under Export from, choose the location you're updating, or all locations.
  3. Under Inventory states shown, choose All states (recommended, it includes On hand) or Available.
  4. Choose which variants to export and the file format, then click Export inventory.

Step 2: Understand the columns

In the All states format, the important columns are:

  • On hand (current): the quantity when you exported. Shopify uses it to validate the import, so don't edit it.
  • On hand (new): the quantity you want to set. Leave it blank to leave the row unchanged.
  • Incoming, Unavailable, Committed and Available: shown for reference and marked as not editable.
  • Location: must match a location name exactly, including capitals.

In the Available format, quantities sit under columns named after each location instead.

Step 3: Calculate new totals for a delivery

Because the file sets quantities, receiving means adding the delivery to what's already there:

  1. Add a helper column, Received, and fill in the quantity delivered for each product.
  2. In On hand (new), enter = On hand (current) + Received for those rows only.
  3. Clear On hand (new) on every other row so they stay unchanged.
  4. Copy the formula results as values and delete the helper column before saving.

Quantities must be whole numbers. If your supplier invoices in cases, convert to units first (pack pricing guide).

Step 4: Import

  1. Go to Products › Inventory, click Import, then Add file and choose your CSV.
  2. Click Upload file.
  3. Review the summary of what will change. If the numbers look wrong, stop here.
  4. Click Start import.

The file can't be larger than 15 MB.

The timing problem

Between your export and your import, orders keep coming in. If a product sold 3 units in that time, the total you calculated is 3 too high, and importing it would quietly add those units back. The On hand (current) column exists so Shopify can validate against changes since export, but the safest habits are:

  • Export, edit and import in one sitting.
  • Do big imports when sales are quiet.
  • Only fill On hand (new) for rows you're actually changing.
  • For small deliveries, use Adjust by on the Inventory page instead: it adds rather than sets, so concurrent sales don't matter.

Common errors

ErrorCause
Location not foundThe location name differs from the admin, often just in capitals or a trailing space
Invalid quantityA decimal or text in On hand (new)
Rows skippedThe variant doesn't track inventory, or the SKU/handle doesn't match
Unexpected totals afterwardsSales between export and import, or Received entered as the new total instead of added

Don't forget costs

The inventory CSV has no cost column. If the delivery came with new prices, update Cost per item separately with the bulk editor or product CSV. See bulk updating cost per item.

Where Box to Shelf helps

Box to Shelf avoids the set-versus-add problem entirely: it adds the received quantity as an adjustment (Shopify's Received reason) at the location you choose, adding to the current quantity instead of replacing it. It reads the quantities and costs directly from the supplier's invoice, updates stock and Cost per item in the same step after you approve each line, and lets you undo the last apply.

Questions

Does the Shopify inventory CSV add to stock or replace it?

It replaces it. The On hand (new) column is the quantity you want to set. Leave it blank to leave a row unchanged.

Can I update costs with the inventory CSV?

No. The inventory CSV has no cost column. Use the product CSV, the bulk editor or an app for costs.

Sources

Shopify changes its admin often. Steps were checked against the Shopify Help Center in November 2026; if a menu has moved, the help center links above have the current version.