Importing Inventory Levels
Bulk-set inventory quantities via CSV for initial stock setup, system migration, or periodic corrections.
When to use inventory import
Initial setup — You imported SKUs via CSV but they have no inventory quantities yet. This is typical for raw materials that aren’t synced from Shopify.
Migration from another system — You’re switching from Finale, Cin7, or another IMS and need to load your actual on-hand quantities rather than the numbers Shopify has (which may have been cloaked or adjusted by the previous system).
Bulk corrections — After a warehouse audit or physical count, you have a spreadsheet of corrected quantities and want to apply them all at once rather than one at a time.
How it works
The import compares each CSV row to the current on-hand quantity at the selected location, then creates the appropriate ledger entry:
Adding inventory (CSV quantity > current on-hand) — creates a Receipt entry. This establishes inventory valuation using the SKU’s average cost. For example, importing 5,000 units at $1/unit = $5,000 in inventory value.
Reducing inventory (CSV quantity < current on-hand) — creates an Adjustment entry. This preserves the existing cost basis without creating a COGS transaction.
No change (CSV quantity = current on-hand) — the row is skipped entirely. No ledger entry is created.
CSV format
The CSV is intentionally simple. Location is selected in the dialog, not per-row.
| Column | Required | Description |
|---|---|---|
SKU Code | Yes | Must match an existing SKU in your account (case-insensitive) |
Name | Optional | For your reference only — not written to the database |
Quantity | Yes | The target on-hand quantity at the selected location |
Example CSV:
SKU Code,Name,Quantity RM-WRAP-LG,Bubble Wrap Large,5000 RM-BOX-MED,Corrugated Box Medium,3000 RM-TAPE-CL,Packing Tape Clear,12000
The importer also recognizes alternative column headers: Qty, On Hand, Stock, Count, and others.
Step-by-step guide
Navigate to the Inventory page
Open the Inventory page and click the Import CSV button in the toolbar.
Select a location
Choose the warehouse or location you’re setting inventory for. The location dropdown defaults to your primary shipping location. All quantities in the CSV will be applied to this single location.
Location is selected once for the entire import — not per row. This matches how merchants think: “I’m counting the warehouse.”
Export current inventory (recommended)
Click “Export Current Inventory” to download a CSV pre-filled with every active SKU and its current quantity at the selected location. Edit the Quantity column in your spreadsheet, then re-upload. This is the fastest and safest approach because every SKU code is already correct.
Dynamic BOM finished goods (virtual kits) are automatically excluded from the export because their quantity is calculated from component availability, not stored directly.
Upload your CSV
Drag and drop the edited CSV into the upload zone, or click “Choose File” to browse. If you’re building a CSV from scratch, the minimum columns are SKU Code and Quantity. You can also download a blank template.
Review the preview
The preview table shows each row with the current on-hand, your target quantity, and the calculated delta. Positive deltas (green) add inventory; negative deltas (red) reduce it. Rows with no change are skipped automatically. Invalid rows (unknown SKU codes, missing quantities) are highlighted in red.
Import
Click “Import” to apply the changes. The results screen shows how many SKUs were updated, how many were unchanged, and any errors. After import, channel sync runs automatically for all affected SKUs.
Important notes
This is not an inventory adjustment. The import sets your inventory to the target quantity. If you import 500 and you currently have 200, the system adds 300 (not 500). If you currently have 700, it removes 200.
FBA, WFS, and AWD locations are excluded. External fulfillment inventory is managed by the marketplace API, not by manual import. The location dropdown only shows locations you control directly.
COGS is not affected. The import creates receipt or adjustment entries, not sales. Your cost-of-goods-sold reports only change when units are actually sold or consumed through orders, BOM builds, or manual issues.
Importing SKUs with initial quantities
If you’re creating new SKUs via the SKU CSV import, you can include an optional Quantity column. When a new SKU is created with a quantity, the system automatically records a receipt at your primary shipping location using the SKU’s standard cost. This lets you import both SKU metadata and initial inventory in a single step.
For existing SKUs, the quantity column is ignored during SKU import to prevent double-counting. Use the standalone inventory import (described above) to correct quantities on existing SKUs.
Ready to import? Head to the Inventory page to get started.