Ingredients & recipes
The Ingredients module lets a sellable product (say, "Chicken soup") be built from ingredients rather than carrying its own stock. Selling the dish deducts the right amount of each ingredient. Ingredients are tracked separately, with their own batches, expiry, preparation losses, allergens, and cost.
Who can access this: requires the Ingredients (read) permission and the Ingredients module. Creating, copying, and deleting require the matching Ingredients permissions.
The ingredient list
Open Master Data → Ingredients. Each row shows status, name, category, available stock (with low-stock and expired warnings), unit, storage location, and asset. Filter by asset at the top right.
Ingredient list with stock warnings
Click Create to add an ingredient:
| Field | What it does |
|---|---|
| Name | The ingredient name (required). |
| Status | Active or Inactive. |
| Internal ID | Your own code / SKU. |
| Category | One or more product categories (reused from products). |
| Unit | How the ingredient is measured (grams, millilitres, kilograms, pieces …). |
| Amount per unit | The pack size you buy in, so purchases in packs convert to stock. |
| Losses (%) | Preparation losses (peeling, boiling, frying, stewing, baking). Applied automatically so a recipe consumes the gross amount. |
| Allergens | Free-text allergen tags. |
| Storage location / Supplier | Where it is kept and who supplies it. |
| Cost | Purchase cost, used for the consumption report. |
| Minimum stock | The level below which the low-stock warning appears. |
| Asset | Which asset(s) hold this ingredient. |
Ingredient stock
Open an ingredient's stock (warehouse icon on its row). The dialog opens with a set of chips — Available, Reserved, Stock, and (when any batch has passed its date) Expired. Stock is kept as batches and drawn oldest-first (FIFO), so expiry and cost are tracked correctly.
- Purchase adds a batch. Enter the number of packs (Gurita multiplies by the pack size and shows a live Will add: N figure), or type an explicit amount to override it, plus an expiry date, a batch number, and a price.
- Adjust makes a signed correction — a positive number adds stock, a negative number removes it — tagged with a usage type: Lost, Broken, Consumed, or Expired. Use it for wastage or a stock-take.
- The batch table shows each batch's Purchased and FIFO Remaining amount, with expired batches greyed out and excluded from what's available.
- The ledger below lists every movement with its source, amount, and status — active (reserved) or confirmed (used) — so you can see exactly what drew each batch down.
Recipes
A recipe turns a product into a dish. On the product's Recipe tab (visible when the Ingredients module is on), add a line per ingredient with an amount and unit. Gurita shows a live "Can produce N" figure — the most units you can make from current ingredient stock.
Note: A product with recipe lines never holds its own stock — its availability is derived entirely from its ingredients. The Product with Stock option is switched off and locked while recipe lines exist.
The POS and the on-site product picker both show the producible number for recipe products and block a sale that would exceed available ingredients.
Consumption report
Master Data → Ingredients → Report shows how much of each ingredient you used over a period. Pick a date range, and optionally filter by asset and category. Each row lists the quantity consumed and the cost of goods sold (COGS), with a total at the bottom.
For example, your "Chicken soup" recipe uses 200 g of chicken per bowl, and chicken is set up with a 10% cooking loss, so each bowl actually draws 200 g ÷ 0.9 ≈ 222 g from stock. Sell 40 bowls in a month and the report shows about 8.9 kg of chicken consumed. The COGS column values that 8.9 kg against the oldest batches first, so if an early batch cost more than a later one, the figure reflects the real cost of what was taken — not today's price.
Ingredient consumption report
