Stock adjustment
How to add or remove units by scanning products, with a note on the movement.
Last updated: 2026-07-29
Use this flow when you need to correct inventory without a purchase or sale: physical counts, breakage, shrinkage, internal returns, or similar.
Only admin and cashier roles can do this.
Where to find it
- Products → Adjust stock button
- Warehouses and stock (
/stock) → same button in the top bar
Step by step
- Open Adjust stock.
- Choose the warehouse/deposit where the movement applies.
After you add products to the list, the deposit stays locked until you clear the list or close the modal. - Pick the adjustment type:
- Add — puts units into the deposit.
- Remove — takes units out (cannot go below zero).
- Scan products:
- Barcode scanner: type or scan in the field and press Enter.
- Camera: tap the barcode icon next to “Qty per scan”.
- Qty per scan: how many units each scan adds (default 1).
- Review the table:
- Internal #, name, barcode, current stock, and adjustment quantity.
- You can edit quantity per row or remove a line with the trash icon.
- Scanning the same product again accumulates quantity.
- Optional: fill in Note (e.g. “Tuesday count”, “Breakage in back room”, “Inventory variance”).
- Confirm with Apply adjustment.
What the system records
- Updates stock in the selected deposit.
- Creates a Shipments / stock movement record (
shipments) as incoming or outgoing, with quantity and your note. - Internal metadata includes user and source
stock_adjustfor audit.
Permissions
| Role | Can adjust? |
|---|---|
| Administrator (1) | Yes |
| Cashier (2) | Yes |
| Sales (3) | No |
| Junior sales (4) | No |
Common errors
- Product not found: barcode missing, product disabled, or not in your company.
- Insufficient stock: in Remove mode, an item does not have enough units in that deposit.
- Permission denied: role is not admin or cashier.
When to use another flow
| Situation | Use |
|---|---|
| Supplier purchase with invoice | Merchandise receiving |
| Move stock between deposits | Transfers |
| Initial bulk stock load | Initial stock or bulk import |