Inventory

How to Bulk Rebalance Shopify Stock Between Locations

Last updated

Need to bulk rebalance Shopify stock between locations because one warehouse is overstocked while another is running dry? With EditEngine Bulk Product Editor, you export your products to a spreadsheet, rewrite the on-hand number for each location side by side, and import the file back. Editing locations in parallel columns is what makes the round-trip far faster than nudging quantities one variant at a time in the Shopify admin.

What you'll learn

  • Export every product with its current stock
  • Edit stock per row in a spreadsheet
  • Import the updated file back to Shopify

What you'll need

  • The EditEngine Bulk Product Editor app installed in your Shopify store
  • At least two active Shopify locations with stock tracking enabled
  • Products that are stocked at the locations you plan to rebalance (variants must already be assigned to those locations)
  • The Advanced import flow — per-location inventory columns are advanced-import only
  • A spreadsheet editor (Excel, Google Sheets, Numbers — anything that opens CSV)

Every Shopify variant has a separate on-hand quantity per location. Rebalancing means lowering the count at one location and raising it at another by the same number, so total stock stays constant but it sits where you need it. The Shopify admin only shows one location at a time, which is why a spreadsheet with one column per location is the right tool.


Step 1 — Export your Shopify stock

Open EditEngine and go to the Export page — that's where you pick which inventory columns land in your spreadsheet.

EditEngine export page showing the column selector for bulk rebalance Shopify stock between locations

Pick the right columns

  • Handle — the unique product identifier the importer uses to match each row back to the right product.
  • Variant SKU — identifies which variant the row belongs to. Required when a product has more than one variant, so the importer writes stock to the correct one.
  • Inventory Available: Shop Location — the on-hand quantity at one specific location. Tick this column once for every location you plan to rebalance — for example, Inventory Available: Main Warehouse and Inventory Available: Retail Store will land as two side-by-side columns.

When the export finishes, click Download. You'll get one row per variant with one Inventory Available column per location, which is exactly the layout you need to compare and rebalance numbers in a spreadsheet.

New to exporting? This guide assumes you know how to run an export and focuses only on the columns and edit unique to this workflow.


Step 2 — Bulk rebalance Shopify stock between locations in your spreadsheet

Open the downloaded CSV in Excel or Google Sheets. Each Inventory Available: <Location> column holds today's on-hand count at that location — those are the cells you'll rewrite.

Exported spreadsheet with one row per variant and two Inventory Available columns side by side

For every row you want to rebalance, lower the number in the over-stocked location's column and raise the under-stocked location's column by the same amount. Keep totals consistent unless you actually mean to write off units — the goal is to move stock, not invent or delete it. Type whole numbers only; no commas, units, or formulas left as text.

  • Main Warehouse: 12 → 4, Retail Store: 0 → 8 (8 units moved, total still 12)
  • Main Warehouse: "12 units", Retail Store: 8.5 — text suffixes and decimals are rejected by the importer

Leave Handle and Variant SKU exactly as exported — those are the matching keys, and changing either points the row at a different variant (or none at all). Don't rename the Inventory Available columns either; the location name in the header is what tells Shopify which site to update. If a row's variant isn't stocked at one of the locations, leave that cell blank instead of writing 0, otherwise you'll force the variant to be activated at that location with zero stock.

Edited spreadsheet with rebalanced quantities across two Inventory Available columns

Save the file as CSV when you're done, and keep the original export handy in case you want to revert.

Tip: Add a temporary Delta column next to each location to track how many units moved per row. Delete it before saving the CSV — the importer ignores unknown columns, but a tidy file is easier to audit later.


Step 3 — Import the edited file back to Shopify

Open EditEngine → Import and select Advanced import — per-location inventory columns are only supported in the advanced flow. Then upload the file you just edited.

EditEngine reads the file and shows a summary. In the Headers panel, confirm that each Inventory Available: <Location> column carries the INVENTORY badge and that the location name in the header matches a real location in your store exactly — a typo here silently skips that column. Leave Match Products By on Auto-detect and Default Command on Merge.

Import mapping screen showing each Inventory Available column detected as an INVENTORY field tied to its Shopify location

Note: This advanced import does not have a dry-run toggle, and rewriting stock is a destructive change — the new number overwrites whatever was on hand. Before you commit the full file, upload a slice of two or three rows first, check the affected variants in the Shopify admin, then import the rest. That confirms your location headers map correctly before any production stock moves.

Click Start Import and wait for the job to finish — a small file takes seconds, larger catalogs a couple of minutes. When it completes, EditEngine shows a per-row summary.

Download the results CSV. It lists every row with a pass/fail status — that file is your proof the change went through, and the new values are now live in your Shopify admin.


Tips and troubleshooting

Don't change Handle or Variant SKU while rebalancing. EditEngine matches each row to a variant by Handle plus Variant SKU. If you edit either one — even a stray space at the end — the importer either updates the wrong variant or silently skips the row. Treat those two columns as read-only and only touch the Inventory Available cells.

Rebalance in pairs, not in isolation. Every unit you subtract from one location should be added to another in the same row, unless you're deliberately writing off stock. A spot-check column that sums all your Inventory Available cells per row should match the original total before you import — if it doesn't, you're not rebalancing, you're changing the total on hand.

Blank cells and zero are not the same. A blank Inventory Available cell tells EditEngine to leave that location's stock alone. A 0 tells it to set on hand to zero and activate the variant at that location if it wasn't already. When you only want to move stock between two existing locations, leave every other location column blank.

Test on a tiny batch first. Because there's no dry-run, the first import of any rebalance should be three or four rows you can verify by hand. Open the variants in the Shopify admin, confirm both locations show the new numbers, then import the rest of the file. This catches a misnamed location header before it touches the whole catalog.


Frequently asked questions

How do I bulk rebalance stock in Shopify?

Export your products with the Inventory Available column for each location, edit the per-location quantities in a spreadsheet so units move from one site to another, then import the file back through Advanced import. That round-trip is how you bulk rebalance Shopify stock between locations without touching each variant in the admin.

Can I edit Shopify stock in a spreadsheet?

Yes. EditEngine exports one column per location (for example, Inventory Available: Main Warehouse) so you can bulk rebalance Shopify stock between locations directly in Excel or Google Sheets. Type the new on-hand number in each cell and import the file back — Shopify's built-in admin only edits one variant at a time.

How long does a bulk stock import take in Shopify?

A few dozen rows finish in seconds, and a few thousand typically import in a couple of minutes. EditEngine streams the file row by row when you bulk rebalance Shopify stock between locations, so even large catalogs complete without timing out. The results CSV shows the exact run time.

What format does Shopify accept for stock imports?

A CSV or XLSX with a Handle column (and Variant SKU when you have multiple variants) plus one Inventory Available: <Location Name> column per location you want to set. EditEngine's advanced import reads that shape directly, which is the supported format to bulk rebalance Shopify stock between locations.

Can I undo a bulk Shopify stock update?

There's no one-click undo, but the workflow is its own backup: keep the unedited export, and re-import it to roll every quantity back to what it was. Because you bulk rebalance Shopify stock between locations by overwriting numbers — not by adding or deleting variants — a revert is just another import.



About EditEngine: EditEngine Bulk Product Editor helps Shopify merchants bulk edit, bulk import, and bulk export their product catalog in minutes instead of days. Install on Shopify →

Previous
Adjust inventory deltas