CSV Template

Shopify inventory countsright before they're imported.

Collect stock counts for every variant and location in the columns Shopify's inventory import reads, and download a file ready to update your on-hand quantities.

Shopify column namesWhole-number quantitiesTry it free

Shopify Inventory

Try the template with up to 3 rows

What You'll Collect

Handle

String
*Required

The product's URL handle: letters, numbers and dashes.

Option1–3 Name & Value

String

Which variant the row is for, such as Size: Medium.

SKU & Title

String

For reference while counting. The import doesn't change them.

Location

String
*Required

Spelled exactly as in your Shopify admin, including capitals.

On hand (current)

String

The quantity from your export, which Shopify uses as a safety check.

On hand (new)

Number

The quantity to set, as a whole number. Blank keeps the current quantity.

Need more than three rows?

Collect up to a thousand rows instead.

The free template is limited to three rows so you can try the workflow. Create your own form when your warehouse team or a stockist needs to send counts for every variant and location.

Create your own form

Up to 1,000 rows

One row per variant per location, for a whole stocktake.

Shopify column names

The headers match Shopify's inventory CSV, so the file imports as is.

Checked as they type

Missing handles and locations, and quantities that aren't whole numbers, are flagged.

Locations as a dropdown

Turn Location into a list of your locations in your own form, so names always match.

How it works

From stocktake to Shopify in three steps.

01

Collect

Export your inventory from Shopify, paste it into the form, and send it to whoever is counting.

02

Complete

They enter On hand (new) for each row. Anything that isn't a whole number, or a missing location, is highlighted.

03

Download

Download the CSV and import it in Shopify under Products, then Inventory, then Import.

Why use a form?

A wrong inventory file changes real stock.

Shopify's inventory import sets the quantities you send. A location name spelled differently, a decimal where a whole number belongs or a row for the wrong variant means stock levels that don't match the shelf, and orders you can't fulfil.

A form keeps every row in Shopify's format while people count, so the file is right before it touches your store.

Location names that don't match

Location is required on every row, and the field explains it must match your admin exactly.

Quantities that aren't whole numbers

Decimals, text and symbols in On hand (new) are flagged before the file is downloaded.

Rows without a handle

Every row needs the product's handle, so Shopify can find the variant.

Shopify inventory CSV template

Updating Shopify inventory with a CSV

Shopify lets you update stock levels in bulk with an inventory CSV, separate from the product CSV. In the recommended All states layout, each variant has one row per location, and you set the new quantity in the On hand (new) column. Leaving On hand (new) blank keeps that location's quantity as it is.

The file is identified by the product's handle and its option values, so those must match your products exactly. Location names are case sensitive and must match the names in your Shopify admin. Quantities are whole numbers; zero and negative numbers are allowed. SKUs and option values can't be changed through this file: use the product CSV for those.

Shopify also uses On hand (current) as a safety check. It's the quantity at the time you exported, and if stock has changed since, those rows fail and Shopify emails you the list. Enter Not stocked for a location that has never held the product. Clearing On hand (current) skips the check, which Shopify warns removes that protection, so the safest workflow is to export first, then count.

Use this template to collect counts from a warehouse team, a store or a stockist, then import the file. It covers the columns stock counts need; bin names, customs codes and packed dimensions can be added to your own form if you use them.

Need a CSV form of your own?

Create a custom Import Builder form with your own fields, validation and row limits.

Get started
Import Builder is an independent product and is not affiliated with, endorsed by, or sponsored by Shopify Inc. Shopify is a trademark of Shopify Inc. Import rules as described in the Shopify Help Center, October 2026.