Skip to content

Back office

Requisitions & consumption

Store requisitions and stock consumed by sales.

3 min read

Requisitions (/inventory/requisitions)

A store asks another location for stock. Every requisition records who requested, approved, issued and received it, the reason, the priority, when it is needed, and four quantities per line: requested → approved → issued → received.

Step Who What happens
New requisition → Save draft / Submit for approval procurement.create (chefs, bar managers, storekeepers’ supervisors) from (warehouse or store), to (your store), department, priority, reason, needed by, lines in any unit
Approve procurement.approve (store manager, branch manager — not the requester) set what the issuing location can spare (defaults to requested; 0 drops a line); the approved quantity is reserved there so nobody else can issue it
Reject procurement.approve with a reason; nothing is reserved
Issue inventory.issue at the issuing location defaults to the approved quantities, never more; the stock moves now (a transfer with its batches) and the reservation is released
Receive inventory.receive at the receiving store what actually arrived; anything short of what was issued is written off at the receiving store, with your note
Cancel the requester or procurement.approve until issued; an approved requisition’s reservation is released

Reserved stock shows on the inventory page (“reserved”) and is subtracted from available, so a warehouse never promises the same bag of sugar twice. The timeline on the requisition shows every step with its time and person.

Consumption — where did each kilogram go?

Every sale, the moment it closes, is exploded through its recipe (and sub-recipes, with trimming and waste allowances) — or its bottle link for resale items — into the ingredients it used, which are deducted from the store that serves the item’s kitchen, bar or barista. Staff meals, events and complimentary orders are deducted too, but kept apart.

Consumption & variance (/inventory/consumption): pick a period and, optionally, one location.

Where did it go? — pick an ingredient:

1 kg Sugar                          received 1 kg
  Sold      African tea      250 g   ██████████
  Sold      Fresh passion    150 g   ██████
  Sold      Chocolate cake    80 g   ███
  Staff     African tea       50 g   ██
  Losses    Waste             50 g   ██
  Losses    Count shortfall   20 g   █
  Remaining now              400 g

Variance table — per ingredient:

Column Meaning
Opening · In · Closing book stock at the start, receipts + transfers in + returns, book stock at the end
Theoretical what recipes say the sales used
Actual opening + in − transfers out − returns out − issues − closing
Variance actual − theoretical
Explained waste, damage, expiry, write-offs, count corrections, adjustments already on the ledger
Unexplained variance the ledger cannot account for (shrinkage, over-portioning, a recipe that is wrong)
Cost variance variance × average cost

A positive unexplained variance on sugar with a clean count means the recipe under-states the spoon, or the spoon is heavier than the recipe.

Resale items

Bottled and packaged items sell as themselves: link the menu item to its stock ingredient (one Nile Special sold = one bottle) on the item page’s Sold as line (inventory.manage), and receive them by the crate with a crate → bottle conversion.

Reopened or voided sales

Reopening a closed sale (or a payment that fails / is reversed) puts its consumption back with a consumption reversed movement; closing it again deducts again.

When deduction is switched off

inventory.deduct_on_sale = false (settings) keeps the theoretical entries — the reports still work — but the stores are only moved by issues and counts.