Updating inventory for hundreds or thousands of products doesn't have to be a manual slog. The Import tool lets you refresh stock levels across your whole catalog in minutes with a "round trip": export your current data, edit it, and re-import the changes.
This guide covers the Inventory Detail import — built for bulk Quantity and Allocated updates. Changing stock for just one or two items is faster by hand — see How to Manually Adjust Inventory in Acenda.
Step 1: Export your current inventory
Start from a snapshot of your current stock so you're editing real IDs and real numbers, not guessing.
In the sidebar, under DATA TRANSFERS, click Exports.
Click + New Export.
From the Model dropdown, choose Inventory Detail.
Click Export.
When the export shows as ready (refresh the page if it still says Processing), click the download icon in the Actions column to save it as a CSV.
For more on exports in general, see Using the Export Feature: How to Export Data from Acenda.
Step 2: Prepare your file
Open the file and trim it down to just what this import needs.
File format: save your file as .xlsx, or as a CSV saved in UTF-8. Acenda's importer only accepts .csv and .xlsx files — .xls and .xlsm are rejected with "unsupported file type." If your spreadsheet has more than one tab, only the first tab is read. If you're exporting to CSV, see How do I save my import file as a CSV in UTF-8 format? to avoid garbled characters — or just save as .xlsx, which sidesteps the issue entirely.
Keep only these columns:
Column | Required? | What it does |
sku (or product_id) | Yes — pick one | Identifies the item to update. |
warehouse_id | Yes | Which warehouse this row applies to. Find a warehouse's ID under CHANNELS > Warehouses — see Adding and Managing Warehouses in Acenda. |
quantity | Yes | The new total physical count for that warehouse — the full number, not an amount to add or subtract. |
allocated | No | Overrides units reserved for open orders. Leave this column out of the file entirely if you don't want to touch it — don't rely on leaving a cell blank to mean "no change." |
Heads up: delete the system columns from the raw export (id, created_at, created_by, updated_at, updated_by) and any other column you don't see above, including custom field (fields.*) columns. On this import, a column the system doesn't recognize can fail that row, and a fields.* column fails every row in the file — unlike a Catalog import, Inventory Detail doesn't carry custom fields.
Step 3: Import the updates
Once your file only has the columns above, you're ready to upload it.
In the sidebar, under DATA TRANSFERS, click Imports.
Click + New Import.
Set the Import Type to Inventory Detail.
Choose whether to match rows by SKU or by Product ID, depending on which identifier column your file uses.
Upload your file, match your column headers to Acenda fields, and click Start Import.
Tip: if you'll repeat this same column layout regularly, check Save custom import profile when you map fields, so you don't have to remap them next time.
How Acenda uses these numbers
Acenda tracks four numbers per item per warehouse — see How to Manually Adjust Inventory in Acenda for the full breakdown:
Quantity: total physical units on hand.
Allocated: units reserved for open orders. It's read-only in the admin — Acenda sets it automatically from orders, and this import is the only way to override it by hand. Shipping an order lowers Quantity and clears its Allocated reservation; cancelling one releases the reservation without touching Quantity.
On Hand: what's actually sent to your sales channels. For a warehouse with Respect Allocations on (the recommended setting), it's Quantity − Allocated. With it off, it's Quantity − Not Available. There's no separate "Available to Sell" field — On Hand is that number.
If a channel has an Inventory Floor set, Acenda holds back that many units of On Hand, per mapped warehouse, before sending — so the channel can show less than your On Hand total.
This import is for warehouses Acenda doesn't already sync stock from. If a warehouse is linked to an inbound inventory sync — ShipHero, ShipBob, Shopify or NetSuite (NetSuite pulls roughly every 30 minutes) — that integration's next sync overwrites whatever you just imported. Use this import for warehouses with no inbound sync, and correct synced warehouses at the source system instead.
An import doesn't push to your channels the moment it finishes. Inventory goes out on each marketplace's own schedule, usually within the hour.
Troubleshooting & FAQ
"Unsupported file type": your file is .xls or .xlsm. Re-save as .xlsx or CSV UTF-8 and re-upload.
A row didn't update, with no error for the whole file: a SKU, Product ID or warehouse_id that doesn't match an existing record fails just that row rather than the whole import. Open the import on the Imports page to see which rows didn't apply.
Every row in the file failed: check for a
fields.*custom-field column, or any column other than sku/product_id, warehouse_id, quantity and allocated — remove it and re-upload.The count went back to what it was before: that warehouse is probably linked to a fulfillment or inventory sync that ran after your import and overwrote it — see the sync note above.
The marketplace still shows the old number: allow up to about an hour, then check whether an Inventory Floor is reducing what's sent, and confirm the warehouse is mapped to that channel.
My CSV imported with garbled characters: re-save as CSV UTF-8, or switch to .xlsx — see How do I save my import file as a CSV in UTF-8 format?.
Related articles
Still stuck? Contact Acenda Support and tell us the SKU or warehouse ID involved and what the Import status page showed.
