What we are about to do, and why in this order
Inventory
Stock control is the one part of this software where the order genuinely cannot be changed. Each step needs the one before it to exist.
An ingredient cannot be created without a unit to keep its stock in. A unit that converts cannot be created without a base unit to convert into. A purchase order cannot be raised without an ingredient and a supplier. A goods receipt is what actually moves stock. And a dish only takes anything out of the store room once it has a recipe.
The whole of this chapter follows one ingredient: chicken breast, which you buy by the kilogram and cook by the gram. Do it once with a real ingredient of your own open in front of you and the rest of your store room is the same job repeated.
Everything here lives under Inventory in the sidebar, in the Inventory & Purchases group.
- 1 Create the ingredient categories.
- 2 Check your units of measurement, and add any you are missing.
- 3 Create the ingredient itself.
- 4 Get the opening quantity in — either straight in, or by buying it.
- 5 Add the supplier you buy it from.
- 6 Raise a purchase order for what you want.
- 7 Receive it with a goods receipt, which is what actually moves stock.
- 8 Write the recipe, so selling the dish moves the stock by itself.
Set aside an hour and do one ingredient the whole way through before you type in two hundred. The second one takes two minutes.
Step 1 — Ingredient categories
Inventory → Manage Categories
Open Inventory and tap Manage Categories. The page is headed Ingredient Categories and explains itself: organize ingredients into categories, and sub-categories are optional.
Add Category asks for a Parent Category, which is optional and starts on None — top-level category, and a Name.
Leave the parent alone for a top-level category like Meat. To put something inside it, either pick Meat as the parent, or use the Add Sub-Category button on the Meat card itself.
Categories are only for finding things and for filtering the Inventory Report. On a list of two hundred ingredients that is worth ten minutes.
- 1 Open Inventory from the sidebar.
- 2 Tap Manage Categories.
- 3 Tap Add Category, leave the parent on None — top-level category, type Meat and save.
- 4 Repeat for Dairy, Dry Goods, Vegetables, Beverages and Packaging.
- 5 On the Meat card, tap Add Sub-Category and add Poultry.
The categories for our running example
- Top-level: Meat.
- Sub-category inside it: Poultry.
- Our chicken breast will sit in Meat › Poultry.
- The Inventory page then has a category filter that lets you read the whole meat bill on its own.
Step 2 — Units of measurement, and what a base unit means
Inventory → Units (UOM)
Open Inventory and tap Units (UOM). The page is headed Units of Measurement (UOM) and states the whole idea in one line at the top: base units hold stock — Gram, Millilitre, Piece — and derived units convert into them, so 1 Kilogram = 1000 Gram.
A base unit is the smallest unit you will ever need, and it is the unit the software actually counts in behind the scenes. Every quantity of that ingredient — what you buy, what a recipe uses, what is wasted — is stored in the base unit.
A derived unit is a friendlier way of typing the same quantity. Kilogram is not a different measurement from Gram; it is one thousand of them. That is all the conversion factor says.
The list has a Type column showing Base Unit or Derived, and a Conversion column that reads a derived unit back to you in plain arithmetic — 1 Kg = 1000 g.
Choose the base unit by asking one question: what is the smallest amount a recipe of mine will ever use? For chicken that is a gram. For a bottle of cola it is a piece — you never sell half a bottle.
اسم *
رمز *
مشتقة من (الوحدة الأساسية)
عامل التحويل *
1 من هذه الوحدة = كم عدد الوحدات الأساسية؟ (1 كجم = 1000 جم)
Why chicken is kept in grams and bought in kilograms
- A burger uses 120 grams of chicken. You cannot write that in kilograms without decimals nobody wants to type.
- You buy chicken 40 kilograms at a time. You cannot write that in grams without counting zeros.
- So the base unit is Gram and the buying unit is Kilogram, with a conversion factor of 1000.
- You type 40 Kilogram on the goods receipt and 120 Gram on the recipe, and the software keeps the single running total of 40,000 grams for you.
Step 2 continued — adding a unit, and the conversion factor
Inventory → Units (UOM)
Look at the list before you type anything. The software normally arrives with the everyday units already set up: Piece, Gram and Millilitre as base units, and Kilogram, Litre, Dozen, crates, cartons and packs derived from them.
Add Unit asks for a Name and a Symbol — Kilogram and Kg — and then the question that decides everything: Derived From (base unit).
Leave it on None — this IS a base unit to create a new base unit. Pick a base unit from the list to create a derived one, and a Conversion Factor box appears.
The Conversion Factor answers exactly the question printed under the box: 1 of this unit equals how many base units? A kilogram is 1000 grams, so type 1000. A dozen is 12 pieces, so type 12. A crate of 24 bottles is 24 pieces, so type 24.
A derived unit can only point at a true base unit. You cannot derive a unit from another derived unit, and the software refuses it with a message saying a unit can only derive from a base unit — no chains of conversions to go wrong.
Editing a unit lets you correct its name, its symbol, its factor and its Active tick. A unit that is in use somewhere cannot be deleted; the page tells you so rather than quietly breaking your stock.
- 1 Open Inventory and tap Units (UOM).
- 2 Check whether the unit you need is already in the list.
- 3 If it is not, tap Add Unit.
- 4 Type the Name and the Symbol.
- 5 For a buying unit, choose the base unit it converts into, then type the Conversion Factor.
- 6 Save, and check the Conversion column reads the way you expect.
Get the factor right before anything is bought in that unit. A carton entered as 6 when it really holds 12 makes every stock figure that ever passes through it half of what it should be.
Step 3 — Adding the ingredient
Inventory → Add Ingredient
Back on the Inventory page, tap Add Ingredient.
Ingredient Name is the only name your kitchen will see — Chicken Breast.
Category and Sub Category are the ones you made in step one. Sub Category is optional and only offers the sub-categories of the category you picked.
Base Unit (stock kept in) only offers true base units, and the hint under it says it plainly: the smallest unit recipes use, for example Gram.
Default Purchase Unit starts on Same as base and only offers units that convert into the base you chose. This is the unit that is filled in for you on purchase orders and goods receipts, and it is also the unit your stock is read back to you in.
Reorder Level has its own unit box beside it, so you can type 5 Kilogram rather than 5000. An item at or below this figure is flagged Low stock, counted on the Inventory link in the sidebar and shown on the Dashboard.
The item code is generated for you. You will see it under Item Code when you open the ingredient again to edit it.
- 1 Open Inventory and tap Add Ingredient.
- 2 Type the Ingredient Name.
- 3 Pick the Category, and a Sub Category if you use them.
- 4 Pick the Base Unit (stock kept in) — the smallest unit a recipe will use.
- 5 Pick the Default Purchase Unit — the unit you buy in.
- 6 Type the Reorder Level and choose its unit.
- 7 Tap Save.
اسم العنصر *
فئة
الوحدة الأساسية (المخزون محفوظ) *
وحدة الشراء الافتراضية
استخدام أصغر وصفات الوحدات، على سبيل المثال. غرام.
المخزون الافتتاحي (اختياري)
كمية
وحدة
التكلفة لكل وحدة
Our running example, filled in
- Ingredient Name: Chicken Breast.
- Category: Meat. Sub Category: Poultry.
- Base Unit (stock kept in): Gram.
- Default Purchase Unit: Kilogram.
- Reorder Level: 5 Kilogram — which the software stores as 5,000 grams and shows back to you as 5 Kg.
Choose the base unit carefully. Once the ingredient has any stock history the box is locked and the form says so, because changing it would silently re-scale every quantity ever recorded against it.
Step 4, route one — putting the opening stock straight in
Inventory → Add Ingredient
There are two honest ways to get a quantity into the software, and this is the quick one. Use it on the day you go live, for what is already sitting in your store room.
The Add Ingredient form has an Opening Stock (optional) block at the bottom with three boxes: Quantity, Unit and Cost per unit.
Type what you counted in whichever unit you counted it in, and what it cost you per that unit. Eight kilograms at 620 a kilogram is typed exactly like that — no arithmetic on your part.
The cost matters as much as the quantity. It becomes the average cost of the ingredient, and every recipe costed off it — and so every dish cost you ever read — is built on that figure.
This block is only on the Add form. Once the ingredient exists, use the two methods in the next topic instead.
The freezer count on the day you go live
- You weigh what is in the freezer: 8 kilograms of chicken breast.
- Opening Stock — Quantity: 8. Unit: Kilogram. Cost per unit: 620.
- Saved, the ingredient shows 8 Kg in stock, which the software is really holding as 8,000 grams.
- Its average cost is now 620 a kilogram, so a recipe using 120 grams already knows it costs you 74.40.
Use opening stock once, at setup. After that let purchases, sales, wastage and adjustments do the moving, so the stock ledger tells the true story of where everything went.
Step 4, route one afterwards — correcting a count
Inventory
Once an ingredient exists there are two ways to change its quantity by hand, and both leave a trace.
Adjust Stock, on the row in the Inventory list, asks for a Direction — Stock In (+) or Stock Out (−) — a Quantity with its unit, an optional cost per unit, and a Reason / Note which is required. Apply Adjustment files it.
Leave the cost box blank and the current average cost is kept, which is what you want for a correction rather than a delivery.
The other way is to open the ingredient with Edit and type a new figure into Current Stock. That does not simply overwrite the count — the difference is booked into the stock ledger as an adjustment, exactly as if you had entered it through Adjust Stock. Set 12 Kg to 20 Kg and the ledger gains an 8 Kg adjustment.
The Edit form is also where Cost Price lives, with a per-unit box beside it, for correcting what an ingredient costs without buying any.
Adjusting needs the Adjust Stock Manually button permission.
A physical count that does not match
- The software says 46 Kg of chicken. The freezer holds 44.2 Kg.
- Tap Adjust Stock on the row.
- Direction: Stock Out (−). Quantity: 1.8 Kilogram.
- Reason / Note: "Physical count 4 August — 1.8 kg unaccounted for".
- The stock now matches the freezer, and three months later the ledger still says why.
An adjustment with a vague reason is worthless later. Write what actually happened, with the date and who counted.
Step 4, route two — bring it in by buying it, starting with the supplier
Suppliers
The second route is the one you will use every week from now on: the stock arrives because you bought it.
Both purchase screens ask for a Supplier and mark it required, so add the supplier first.
Suppliers, in the Inventory & Purchases group, lists who you buy from with their Purchases count, their Payable Balance and their status. Add Supplier asks for a Name, a Phone, an Email, an Address and an Opening Balance (payable).
The opening balance is what you already owe that supplier the day you start using the software. Leave it at zero if you are square with them.
Every supplier has a Ledger showing each purchase and each payment, and what is still outstanding.
- 1 Open Suppliers from the sidebar.
- 2 Tap Add Supplier.
- 3 Type the Name and the Phone.
- 4 Type the Opening Balance (payable) if you already owe them something.
- 5 Tap Save.
The meat supplier in our example
- Name: Al-Madina Meat. Phone: the number you actually ring.
- Opening Balance (payable): 0 — you start square.
- After the goods receipt later in this chapter, their Payable Balance will read 9,060.
Step 5 — Raising a purchase order
Purchase Orders
A Purchase Order is what you send the supplier before the goods arrive. It records what you asked for, from whom, and when you expect it. On its own it moves no stock and no money — it is paperwork, and it is optional.
Purchase Orders, in the sidebar, lists them with their Reference, Date, Supplier, Expected date, Est. Total and Status.
New Purchase Order opens a page headed Create Purchase Order: a Supplier, an Order Date, an Expected Delivery, a Note, and then Items to Order.
Add Row adds a line. Each line is an Item, a Unit, a Quantity and an Est. Cost / Unit, and the page totals them into an Estimated Total as you type. It is an estimate — the real price is whatever the invoice says when the goods turn up.
The Unit box only offers units that convert into that ingredient's base unit, so a kilogram can be ordered against chicken but a litre cannot.
When the delivery arrives, the Receive (GRN) action on the row turns the order into a goods receipt with its pending quantities already filled in.
- 1 Open Purchase Orders from the sidebar.
- 2 Tap New Purchase Order.
- 3 Choose the Supplier and set the Order Date and Expected Delivery.
- 4 Search for each ingredient, set its Unit, Quantity and Est. Cost / Unit.
- 5 Check the Estimated Total and tap Create Purchase Order.
المورد *
تاريخ الطلب *
التسليم المتوقع
العناصر للطلب
| غرض | وحدة | كمية | EST. التكلفة / الوحدة | الإجمالي |
|---|---|---|---|---|
| صدور دجاج | Kilogram | 40 | 620 | 24,800 |
| الإجمالي المقدر | 24,800 | |||
The order we are about to place
- Supplier: Al-Madina Meat. Expected Delivery: Thursday.
- One line — Chicken Breast, 40, Kilogram, Est. Cost / Unit 620.
- Estimated Total: 24,800.
- Nothing has moved yet. Your stock is still 8 Kg and you owe the supplier nothing.
Purchase orders are optional. If you simply buy things and they arrive, skip this step and go straight to the goods receipt.
Step 6 — Receiving it with a GRN
Purchases (GRN)
A GRN — a Goods Receipt Note — is the document that actually moves stock. Nothing you have done so far has changed a single quantity; this is the step that does.
Purchases (GRN) in the sidebar is the list. New GRN (Receive Goods) opens the form, headed Receive Goods (GRN).
Choose the Supplier and the Receive Date. Link to PO (optional) either links the receipt to an order you raised, or stays on Direct purchase — no PO for goods you simply bought.
Coming in from a purchase order, a green line at the top says which order you are receiving against and that the pending quantities are prefilled below — adjust them to what actually arrived. Do adjust them. Forty kilograms ordered and thirty-eight delivered is normal, and typing thirty-eight is the whole point of the exercise.
Received Items works exactly like the purchase order lines, except the price box is called Cost / Unit and it is the real price, not an estimate.
The Charges block takes a Tax % and a Freight / Delivery amount, and the totals beside it show the Subtotal (goods), the Freight, the Tax and the Grand Total.
The Payment block is where the money is settled. Type what you handed over into Paid Now, or tap Pay Full, and choose the From Account it came out of. Whatever is left shows as Due to Supplier (on credit), and the note under it says the unpaid goods value is added to the supplier's ledger.
Save GRN — Update Stock files it.
- 1 Open Purchase Orders and tap Receive (GRN) on the order — or open Purchases (GRN) and tap New GRN (Receive Goods).
- 2 Check the Supplier and set the Receive Date to the day the goods actually arrived.
- 3 Correct every Quantity to what was really delivered, and every Cost / Unit to what the invoice really says.
- 4 Fill in Freight / Delivery and Tax % if there are any.
- 5 Type what you paid into Paid Now and choose the From Account.
- 6 Tap Save GRN — Update Stock.
المورد *
تاريخ الاستلام *
رابط إلى أمر الشراء (اختياري)
العناصر المستلمة
| غرض | وحدة | كمية | التكلفة / الوحدة | الإجمالي |
|---|---|---|---|---|
| صدور دجاج | Kilogram | 38 | 620 | 23,560 |
رسوم
قسط
The delivery, half paid in cash
- Supplier: Al-Madina Meat. Linked to the purchase order above.
- The lorry brings 38 Kilogram, not the 40 ordered. Cost / Unit: 620. That line totals 23,560.
- Freight / Delivery: 500. Tax %: 0. Grand Total: 24,060.
- Paid Now: 15,000, From Account: Main Cash.
- Save GRN — Update Stock. Stock rises to 46 Kg, the cash account falls by 15,000, and the supplier is owed 9,060.
What the goods receipt actually did
Purchases (GRN)
Four things happen the moment you save a GRN, and it is worth knowing all four so the figures never surprise you.
Stock goes up. Each line is converted into the ingredient's base unit — 38 Kilogram becomes 38,000 grams — and added to what was already there.
The average cost is recalculated. The new stock is blended with the old at the price you just paid, so the cost your recipes are priced off follows the market.
The money leaves the account you chose, as a purchase, on the receive date.
What is left is owed to the supplier. The payment is applied to the tax and the freight first and only then to the goods, so what lands on the supplier's payable balance is the unpaid value of the goods themselves.
If you linked the receipt to a purchase order, that order's received quantities are topped up too, so a part delivery leaves the order open for the rest.
Where the 24,060 went
- Goods: 23,560. Freight: 500. Grand Total: 24,060.
- You paid 15,000. The freight of 500 is settled first, leaving 14,500 against the goods.
- 23,560 minus 14,500 leaves 9,060, and that is what appears on the supplier's Payable Balance.
- The Main Cash account is 15,000 lighter, dated the day the goods arrived.
- The chicken is 46 Kg — the 8 Kg you counted in plus the 38 Kg that arrived.
Step 7 — The recipe, which is what makes stock move by itself
Recipes
Everything so far gets stock into the software. This step is what takes it out again when you sell food, and without it your carefully entered stock will sit there for ever.
Recipes, under Menu Items in the sidebar, lists every dish with a green mark reading "Has recipe — stock deducts on sale" or an amber one reading "No recipe — stock will NOT deduct". That single column is the honest answer to "why is my stock not moving".
Add Recipe opens the editor. Add Ingredient adds a line: the Inventory Item, what it Applies To, the Quantity and the Unit.
The unit defaults to the ingredient's base unit and you may pick a bigger one — it is converted to the base unit when you save.
For an item with sizes, the All Sizes (default) lines are the default recipe, and you add size-specific lines to override them, so a large pizza can use more chicken than a small one.
An Estimated Recipe Cost is totalled as you type. That is what the dish actually costs you, worked out from the average cost the goods receipt just set.
Save Recipe files it. From then on, completing an order deducts each sold item's ingredients automatically.
- 1 Open Recipes from the sidebar.
- 2 Find the dish and tap Add Recipe.
- 3 Tap Add Ingredient and search for the inventory item.
- 4 Type the Quantity and pick the Unit.
- 5 Add a line for every ingredient the dish uses.
- 6 Check the Estimated Recipe Cost and tap Save Recipe.
The recipe for one Zinger Burger
- Line one: Chicken Breast, Applies To All Sizes (default), Quantity 120, Unit Gram.
- Line two: Burger Bun, Quantity 1, Unit Piece.
- With chicken at 620 a kilogram, the 120 grams cost 74.40, and the editor shows it.
- Selling one Zinger now takes 120 grams of chicken and one bun out of stock, without anybody touching the inventory screen.
Checking that it all worked
Inventory → Stock Ledger
Do not take it on trust. Ring one up and watch the number move.
Sell a single Zinger Burger on the POS and complete the payment, then open Inventory and look at the chicken. It should have dropped by exactly 120 grams.
Then open Stock Ledger from the Inventory page. Every movement of every ingredient is listed there — what came in on a goods receipt, what went out with a sale, what was wasted, transferred or adjusted. When a stock figure ever looks wrong, this is the screen that tells you why.
The Inventory list shows each ingredient with its Base Unit, its Current Stock, its Reorder Level, its Avg Cost / Unit and its Stock Value, and flags anything at or below the reorder level as low.
- 1 Ring up one of the dish on the POS and complete the sale.
- 2 Open Inventory and check the ingredient's Current Stock has fallen.
- 3 Open Stock Ledger and read the last few lines.
- 4 If nothing moved, open Recipes and check the dish is marked as having one.
| غرض | الوحدة الأساسية | المخزون الحالي | إعادة ترتيب المستوى |
|---|---|---|---|
| صدور دجاج | Gram | 38.4 Kg | 5 Kg |
| زيت الطهي | Millilitre | 4.2 L | 5 L |
| Burger Bun | Piece | 120 pc | 48 pc |
The number we expect to see
- Before the sale: 46 Kg of chicken breast.
- You sell one Zinger Burger and complete the payment.
- After the sale: 45.88 Kg — 120 grams lighter.
- The Stock Ledger shows that 120 gram movement against the order number that caused it.
Which route to use, and when
Inventory
Opening stock and purchases are not alternatives you choose between for ever. They answer two different questions.
Opening stock answers "what was already here when we started". Use it once per ingredient, on setup, and never again.
Purchases answer "what arrived today, from whom, and what did it cost". Use them for everything from then on, because they are what keep your supplier balances, your cash and your food cost honest.
Adjustments answer "the shelf and the software disagree". Use them after a physical count, with a real reason written on each one.
If you find yourself adjusting stock upwards every week, you are really recording deliveries in the wrong place. Record them as goods receipts instead and your Purchase Report, your supplier ledgers and your food cost all start working.
The whole thing on one page
Here is the entire sequence again, with the running example beside each step, so you can work down it with the software open.
Chicken breast, start to finish
- Inventory → Manage Categories: create Meat, then the sub-category Poultry.
- Inventory → Units (UOM): check Gram exists as a base unit and Kilogram is derived from it with a factor of 1000.
- Inventory → Add Ingredient: Chicken Breast, Meat › Poultry, base unit Gram, purchase unit Kilogram, reorder level 5 Kilogram.
- Opening Stock on the same form: 8 Kilogram at 620 each.
- Suppliers → Add Supplier: Al-Madina Meat.
- Purchase Orders → New Purchase Order: 40 Kilogram at an estimated 620.
- Purchases (GRN) → Receive: 38 Kilogram at 620, freight 500, paid 15,000 from Main Cash. Stock 46 Kg, supplier owed 9,060.
- Recipes → Zinger Burger: 120 Gram of Chicken Breast and 1 Piece of Burger Bun.
- Sell one burger and the chicken reads 45.88 Kg.
The chapter that follows this one covers each of these screens in its own right — stores, transfers, purchase returns, wastage and own consumption included.
This chapter describes the software as it is today. Every account gets the same guide inside the product, searchable and printable.