Store β warehouse#
π΄ Read-only from outside#
Every write is rejected
save, update-columns, delete, delete-all and the domain operations
(receive, issue, transfer, stocktake, post, cancel) all return a rejection.
The response:
The rejection looks like a missing permission
Code 400 means permission denied, not "unsupported operation". Do not go
looking for a permissions misconfiguration β the module is deliberately
read-only.
Resources#
| Resource | Contents |
|---|---|
stock-item |
stock item |
stock-level |
quantity in a warehouse |
stock-batch |
batch β number, expiry, purchase price |
stock-document |
document |
stock-movement |
movement |
stock-movement-batch |
movement by batch |
stock-reservation |
reservation |
warehouse |
warehouse |
supplier |
supplier |
vacation |
vacation |
Three quantities#
An item carries three different figures:
| Figure | Meaning |
|---|---|
| In stock | physically |
| Reserved | promised to orders |
| Available | the difference β what can be sold |
Sellability follows available, not in stock
Ten in stock and eight reserved means two can be sold. If you show availability to a customer, use the available quantity.
The reserved figure is stored, not computed
It can drift from reality. You notice because the physical figure is right and the available one is not.
The link to the shop#
An item is linked to a set from the shop.
An unlinked item governs no availability
The shop does not know about it and sells regardless of quantity.
Movements are snapshots#
A movement stores the item name and the balance at the moment of the movement.
Renaming an item does not change old movements
Deliberately β a document should show what it said at the time.
Vacations#
Periods when nothing is dispatched. They feed into the delivery estimate.