Bulk Import — Opening Stock
For: Anyone setting starting quantities and values for existing items
Upload the opening stock (starting quantity and value) for items that already exist, per warehouse, from an Excel/CSV-style sheet. Each row ties one item to one warehouse.
Warning: This tool does not create items. It only sets opening stock for items already set up. If an item doesn't exist yet, add it first (Bulk Import — Items).
How it works
Every bulk upload has two steps. You run the same sheet through a Check first, fix anything it flags, then run it again to actually Apply the stock.
| Step | What it does |
|---|---|
| 1. Check (recommended) | Reviews your entire sheet and lists every row with a problem — without saving anything. Fix the issues and check again. |
| 2. Apply | Once every row passes, upload again to actually apply the stock. |
Danger: Applying is all-or-nothing: if even one row has a problem, nothing is recorded — the whole batch is rolled back. Check first.
Required in every row
These must be filled in correctly on every row:
| Field | What's needed |
|---|---|
| Item No | The number of an item that already exists (exact match). Items are not created here. |
| Warehouse Name | The exact name of an existing warehouse. |
| Stock | Units in that warehouse. Up to 3 decimal places. |
| Value | Total value of that stock. Up to 3 decimal places. |
Optional fields with rules
These are optional — but if you fill them in, they must follow these rules:
| Field | Rule if you fill it in |
|---|---|
| Stock & Value together | Both must be filled in, or both left at zero. One without the other is rejected. |
| A 0 / 0 row | Accepted, but quietly skipped — treated as 'nothing to add here'. |
| Negative numbers | Rejected for both Stock and Value. |
| Track Inventory | The item must have Track Inventory switched on, or the row is rejected. |
Must match existing records
Item No and Warehouse Name must match existing records exactly, including capitalization.
| Field | What it must match |
|---|---|
| Item No | Must exactly match an existing item's number (case-sensitive). |
| Warehouse Name | Must exactly match an existing warehouse name (case-sensitive). |
Duplicates & uniqueness
| Situation | What happens |
|---|---|
| The same Item + Warehouse appears twice in your sheet | Rejected — list each item/warehouse pairing only once per upload. |
| That item + warehouse already has stock on record | A non-zero row is rejected. Note: this triggers if ANY stock already exists for that item+warehouse (from an earlier opening-stock upload, a purchase, production, or an adjustment) — not only from a previous opening-stock entry. A 0/0 row is always fine. |
Common mistakes
If a row is rejected, it is usually for one of these reasons:
| If this happens… | …here's what it means |
|---|---|
| Item No missing or doesn't match | The item must already exist — check the number, or add the item first. |
| Item's Track Inventory is off | Opening stock can only be added for inventory-tracked items. |
| Warehouse Name missing or doesn't match | The warehouse must already exist — check spelling. |
| Stock and Value don't match up (one filled, one not) | They must move together — both zero, or both greater than zero. |
| More than 3 decimal places on Stock or Value | Round to 3 decimals or fewer. |
| Same item + warehouse listed twice, or stock already on record | Each pairing once per sheet; can't re-import stock that already exists. |
What happens on the final step
- •For each non-zero row, the stock and its value are recorded against that item in that warehouse.
- •If some stock already existed for that warehouse, the new amount is added on top (not overwritten), and the average cost is recalculated to reflect both together.
- •The accounting entry behind the scenes is updated to the new total — debiting the item's inventory account and crediting an opening-balance adjustment.
- •The whole batch is written together in a single transaction — if anything fails, nothing is saved.
Recommended way to work
- Build your sheet with item numbers, warehouse names, and the stock/value for each.
- Run the Check step first and review the problem rows.
- Fix each issue and re-check until every row passes.
- Only then run Apply to record the opening stock.
- Tip: if someone else imports stock for the same item and warehouse between your Check and Apply, your row can still be rejected at the last moment — just check again before retrying.