Pick Lists — SanadiqCloud
Product version: 1.0.0+1
Last updated: 2026-08-13
Audience: Tenant Owners, Tenant Employees, Regular Users
A. What are Pick Lists?
A Pick List is an inventory issue document. An authorized user takes one or more items from a source bin in a tenant stock pool for an internal or operational purpose — not a sale, and not a bin-to-bin transfer.
The document answers: who took what, from where, when, and why?
There is no destination bin. Issued items leave on-hand inventory; they may later be used for production, quality, maintenance, material usage, samples, damaged-item handling, or other internal work. The system does not track a packing/destination location.
| Operation | Purpose |
|---|---|
| Sale | Inventory leaves because a customer bought it (sales workflow; customer required) |
| Transfer | Move stock between inventories (source bin → destination bin) |
| Bin transfer | Move quantity between bins inside one pool (on-hand unchanged) |
| Adjustment | Correct on-hand quantity (approve updates stock) |
| Pick List | Issue stock from a source bin for internal/operational use (on-hand decreases on Issue) |
Product-facing name remains Pick list. Internally it is an inventory issue (transaction_type=issue, reference_type=pick_list).
Optional reference_type / reference_id can link a pick list to another document without turning it into a sale or transfer.
B. Status lifecycle
Happy path:
Draft → Completed (issued)
↘ Processing → Completed (optional reserve, then issue)
↘ Cancelled (any step before Completed)
The same user who created the pick list can Issue it. There is no second-person approval. Processing is optional when you want to reserve stock before issuing.
Legacy handover statuses (collected, ready, received) remain completable on the API. The app does not show collect / ready / received buttons.
| Status | Meaning |
|---|---|
| Draft | Editable header and lines. On-hand is not reduced. Issue is allowed from here. |
| Processing | Optional: picker started; requested qty is reserved on each active line |
| Completed | Quantity issued from the source bin; ledger rows written (reservations released if any) |
| Cancelled | Reservations released if any; no issue |
Inventory quantity is reduced only on Issue (complete), not when the pick list is opened or started.
C. Viewing the list
Browse / manage: Warehouse hub → Explore inventory → Pick lists (/inventory/pick-lists).
Create from an item: open an inventory item → Operations → Create pick list. Inventory and the stock line are locked (same pattern as transfer). You choose source bin and quantity. There is no destination bin.
If the item’s quantity lives in bins, you must pick a source bin. Drawing without a bin uses the unassigned pool only (on-hand minus allocated).
Filter by status and search; permission inventory:pick_list:read required.
D. Creating a Pick List
Requires inventory:pick_list:create.
From the list FAB (multi-line) or item Operations (one locked line):
- Inventory (stock pool) — locked when opened from item detail.
- Issued by — the signed-in user (read-only).
- Optional reason (purpose: production, quality, maintenance, … — free text), reference, and notes.
- Each line: stock item, source bin (bins that hold this item), quantity.
- Save → status Draft.
Source bin lists bins where the item has an allocation. Leave source as “Assign later” only when drawing unassigned stock.
E. Workflow actions
Requires inventory:pick_list:update.
| Action | From | Effect |
|---|---|---|
| Issue | Draft, Processing, or legacy collected/ready/received | Reduce on-hand from the source bin; write issue ledger rows. Creator may issue. |
| Start processing | Draft (optional) | Reserve stock on active lines |
| Update pick qty | Processing (optional) | Set quantity_picked per line |
| Cancel | Any except Completed/Cancelled | Release reservation if needed |
Insufficient stock is rejected; inventory is unchanged.
F. Permissions
| Permission | Ability |
|---|---|
inventory:pick_list:read |
List / detail / statistics |
inventory:pick_list:create |
Create pick list |
inventory:pick_list:update |
Edit draft, lines, start processing, issue, cancel |
inventory:pick_list:delete |
Remove draft lines (where exposed) |
Owner and Manager roles include full pick-list permissions; Employee typically has read only (via built-in role seed). The API enforces these permissions; hiding a button is not enough.
G. Print
Detail → print produces a pick list / inventory issue PDF: id, date, issued by, reason, source inventory/warehouse, lines with quantity and source bin. No destination bin.
H. API (gateway)
Prefix: /api/inventory/v1/pick-lists
POST /— create (optionally with items; optionalreason; lines takephysical_location_idonly)GET /,GET /statistics,GET /{id}PUT /{id}— draft update (includingreason)POST /{id}/start-processing|complete|cancel(legacymark-collected/mark-ready/mark-receivedstill exist)- Line routes under
/{id}/items
OpenAPI: inventory service /docs.
I. Related docs
- Transfers — inter-inventory moves (source and destination bins)
- Adjustments — quantity corrections
- Physical Locations — bins
- Warehouse Zones — pick / pack floor areas
- Transactions — ledger (
issuerows withreference_type=pick_list) - Overview — hub navigation