Storage Companies & Warehouses
A complete how-to for 3PL storage partners: warehouses, receiving stock, and confirming inventory requests.
2 min read
Storage Companies & Warehouses
A Storage Company is a 3PL partner that operates one or more Warehouses and physically holds merchant stock. Storage partners are the only actor that can turn an approved inventory request into real, sellable stock: a balance bucket is created/incremented exclusively when you confirm receipt.
Actors
| Actor | What they do |
|---|---|
| Merchant | Submits an inventory request to bring stock in. |
| Platform Admin | Approves the request, then assigns it to a storage company (and optionally a warehouse). |
| Storage Company admin / staff | Confirms receipt (stock becomes real) or rejects the assignment. |
Onboarding
- NQLA registers your company with a primary user plus staff users.
- You operate one or more warehouses, each with a unique code and an address.
- Visibility is scoped: your users only ever see your own company's inventory requests, balances, warehouses, and ledger.
Daily storage flow
- Admin assigns an approved inventory request to your company. Status →
assigned_to_storage. The Admin may already attach a warehouse, or you set it. - You confirm or reject:
- Confirm — the system, inside one locked transaction:
- locks (and creates if missing) the balance bucket for
(product, color, size, shape, warehouse), - increments that bucket by the request quantity,
- writes an
additionledger transaction recording the newbalance_afterand a reference to the request, - sets status →
confirmed_by_storage(a final state).
- locks (and creates if missing) the balance bucket for
- Reject — status →
rejected_by_storage, with a mandatory reason. No stock is added.
- Confirm — the system, inside one locked transaction:
The whole confirm runs under a row lock, so two staff tapping Confirm at once cannot double-count — the loser is rejected with "already processed".
What you can and can't do
- You can only act on requests in
assigned_to_storage. Confirming or rejecting anything else is refused. - A request your company rejected (
rejected_by_storage) can be re-assigned (to you again or another storage company) by an Admin; the previous storage-rejection fields are cleared on re-assignment.
Screens & endpoints
| Item | Location | Gating |
|---|---|---|
| Storage companies | /admin/storage-companies |
manage_storage_companies |
| Warehouses | /admin/warehouses |
manage_warehouses |
| Inventory requests | /admin/inventory-requests |
view_inventory_requests |
| Inventory balances | /admin/inventory-balances |
view_inventory_balances |
| Inventory ledger | /admin/inventory-transactions |
view_inventory_transactions |
Related pages
- Inventory Workflow (
inventory-workflow) — the full request → balance → ledger model. - Delivery Companies & Drivers (
delivery-companies-drivers).