Manage stockroom and consumables
Track quantity-based consumables — cables, dongles, headsets, chargers, keycards — that you hold in bulk rather than tag as individual assets. The stockroom keeps an on-hand count per item and a full movement ledger, so you always know what you have, what's running low, and where every unit went.
Use the stockroom for fungible items you count, not serialise. For a single tracked device with a serial number and an assignment history, add it as hardware instead.
:::note Before you begin
- You need an administrator role. The stockroom lives in the admin console at
/admin/stockroom. - Stock levels are never typed in directly after an item exists. You set an opening balance once at creation, then change the count only through the Issue, Restock, and Adjust actions — each leaves a ledger entry. :::
How the stockroom is organised
The Stockroom index opens with an inventory-health view, then the catalog:
| Section | What it shows |
|---|---|
| KPI strip | SKUs (active line items), Units on hand (sum of all quantities), Inventory value (on hand × unit cost, at last-known cost), and Below threshold (items needing restock). |
| Restock these soon | An amber panel listing items at or under their reorder threshold, worst first. Appears only when something is low. Each chip links to the item. |
| Catalog | The searchable, filterable item table. Low-stock rows are tinted amber. |
Filter the catalog with the Search box (matches name, SKU, or barcode), the Category dropdown, and the Location dropdown. The location list shows only places that currently hold stock. Select Apply to filter and Clear to reset.
Add a stockroom item
- In the admin console, open Stockroom, then select Add item.
- Enter the SKU and Name — the only required fields. The SKU must be unique.
- Set an Opening balance if you already hold stock. This is a one-time figure; every later change goes through the movement actions.
- Fill in any other details — see the field reference below.
- Select Create item. To leave without saving, select Cancel.
The opening balance, if non-zero, is recorded as an Opening balance adjustment in the
ledger so the item starts reconciled.
Field reference
The form has two required fields (SKU and Name). Everything else is optional.
Item
| Field | Required | Default | Notes |
|---|---|---|---|
| SKU | Yes | — | Unique stock-keeping code, max 64 characters, e.g. USB-C-3M. |
| Name | Yes | — | Human-readable name, max 191 characters. |
| Category | No | — | Free text, max 64 characters. Existing categories populate the index filter. |
| Barcode | No | — | EAN or UPC for a scanner, max 64 characters. Searchable on the index. |
| Description | No | — | Free text — spec, build notes, anything SKU-specific. |
| Active | No | On | Active items appear in search results and dashboards. Clear to hide an item without deleting it. |
Stock levels
| Field | Required | Default | Notes |
|---|---|---|---|
| Opening balance | No | 0 | Shown only when creating an item. One-time initial stock; later changes use the movement actions. |
| Current on hand | — | — | Shown read-only when editing. Editable only via Issue, Restock, and Adjust, which keep a ledger trail. |
| Reorder threshold | No | 0 | The item flags as "needs restock" when on hand is at or below this. Set to 0 to never warn. |
Procurement
| Field | Required | Default | Notes |
|---|---|---|---|
| Vendor | No | — | Pick from your vendors list. |
| Location | No | — | Pick from your locations list — the physical place the stock sits. |
| Unit cost | No | — | Number, 0 or greater. Drives inventory and line value. |
| Currency | No | EUR | One of EUR, USD, GBP, PLN. |
| Notes | No | — | Procurement notes — preferred supplier, lead time, and so on. |
Record a stock movement
Every change to an on-hand count is a movement. Open an item from the catalog, then use the Record movement card in the left column. Pick a tab — Issue, Restock, or Adjust — fill in the fields, and submit. Each movement writes a row to the Transaction ledger and updates the cached on-hand count.
Issue stock to a person
Issuing hands units to an employee and decreases on hand.
- On the item page, select the Issue tab.
- Set the fields below, then select Issue.
| Field | Required | Default | Notes |
|---|---|---|---|
| Quantity to issue | Yes | 1 | Whole number from 1 up to the current on hand. |
| To user | Yes | — | The recipient. Only active users appear. |
| Reference | No | — | Free text, max 128 characters — a ticket or request number. |
| Notes | No | — | Free text. |
When on hand is 0, the quantity and user fields are disabled and the panel reads Out of stock — restock first. Restock before you can issue.
Restock to add units
Restocking records incoming stock and increases on hand.
- On the item page, select the Restock tab.
- Set the fields below, then select Restock.
| Field | Required | Default | Notes |
|---|---|---|---|
| Quantity to add | Yes | 10 | Whole number, 1 or greater. |
| PO / reference | No | — | Free text, max 128 characters — a purchase-order number, e.g. PO-2026-0042. |
| Notes | No | — | Free text. |
Adjust to correct a count
Adjusting reconciles the on-hand count with reality — a physical recount, breakage, or loss. You enter a signed delta (the change), not the new total.
- On the item page, select the Adjust tab.
- Set the fields below, then select Record adjustment.
| Field | Required | Default | Notes |
|---|---|---|---|
| Signed delta | Yes | — | The change, not the new total. Use a negative value to remove (-3) or positive to add (+5). Can't be 0. |
| Reason | Yes | — | Why you're adjusting — physical count reconciliation, damage, loss. Max 500 characters. |
| Reference | No | — | Free text, max 128 characters. |
To set an item to a known total, subtract the current on hand from the target and enter
that difference. For example, to move from 12 on hand to 20, enter +8.
Read the transaction ledger
The right column of the item page lists every movement, newest first, in the Transaction ledger. Each row carries a coloured type badge:
| Type | Effect on on hand | Created by |
|---|---|---|
| Restock | Increase | A Restock action. |
| Issue | Decrease | An Issue action — the recipient shows in the Who column. |
| Adjustment | Increase or decrease | An Adjust action, or the opening balance set at creation. |
| Return | Increase | Stock returned to the room. |
Ledger columns are When, Type, Qty (signed — green for additions, red for removals), Who (the issue recipient, if any), Reference, and By (the administrator who recorded it, or System). A movement's notes, when present, show on a second line under its row. The ledger is the system of record, so the on-hand count is always reconstructable from it.
Edit or archive an item
To change an item's details — name, category, threshold, vendor, cost — open it and select Edit details. The on-hand count isn't editable here; use a movement instead.
To remove an item, select Archive on the item page. An item must be at zero on hand first; the platform blocks archiving while stock remains and shows Cannot delete: item still has stock. Issue or adjust to zero first. Archived items are soft-deleted, so their ledger history is preserved.
Troubleshooting
| Symptom | What to do |
|---|---|
| Out of stock — restock first. on the Issue tab | The item is at 0 on hand. Use Restock to add units, then issue. |
| Quantity to issue is rejected | You can only issue up to the current on hand. Lower the quantity, or restock first. |
| Form reloads with the SKU highlighted | The SKU is missing or already used by another item. Enter a unique value, then save again. |
| Cannot delete: item still has stock. | Archiving needs a zero count. Issue or adjust the item to 0, then archive. |
| An item won't save the on-hand number you typed | On hand isn't editable on the form after creation. Use Issue, Restock, or Adjust on the item page. |
| An item is missing from the catalog | It may be inactive. Clear any filters; to restore visibility, open the item and turn Active back on. |