Restaurant
Restaurant tracks a sale differently from retail — an order opens at a table, runs through courses and add-ons, and closes only when the guest is ready to pay, which can be a while later. The experience opens straight into the floor: a server picks a table first, and the order, kitchen ticket, and eventual bill are all tracked against that table rather than a single checkout moment. It can share a branch and catalog with retail (a bar that also sells packaged drinks over the counter, say); pharmacy never shares with either.
This guide follows a restaurant from a fresh branch to a normal service: lay out the floor, build the menu, then run service from table to kitchen to bill.
1. Set up your branch
Section titled “1. Set up your branch”Create the branch as restaurant, or retail + restaurant if the same venue also rings up retail sales over a counter. Then configure the dining layout — levels → sections → tables — so a multi-floor venue can assign servers by floor instead of working off one flat table list.
2. Build your menu
Section titled “2. Build your menu”Dishes are catalog items of type restaurant_item, with an optional buying price and modifiers for the add-ons a kitchen offers. Cocktails are simpler — sale price and buying price only, with no recipe-ingredient depletion in this version. Pricing underneath works the same as any other vertical: Inclusive/Exclusive entry and profit % kept in sync automatically.
→ Products & item types · Item pricing modes
When a branch runs both verticals, the catalog is shared — restaurant can sell retail stockables like drinks, and retail can sell your ready dishes without going through the kitchen flow.
3. Bring in stock
Section titled “3. Bring in stock”Ingredients and drinks are stocked the same way any retail item is — suppliers, then a purchase that only lands on the shelf once it’s marked received.
→ Suppliers · Purchases & receiving
4. Run service
Section titled “4. Run service”A server selects a table, then builds the order against it — everything that follows is tracked against that table. A table still running a tab, not yet ready to settle, is a held sale: visible and resumable from any terminal in the branch, since the server who opened it might not be the one who closes it. Closing a shift only warns, and doesn’t block, if tables are still open — a table can outlive the shift that started it.
Fired items land on Kitchen / KDS in the POS sidebar, and a ready-alert plays once per ready event rather than looping.
5. Take payment and close out
Section titled “5. Take payment and close out”Settle the table in cash or M-Pesa the same way retail does, then close the shift by counting cash.
→ Payments · Setup, registers & shifts
Reports work the same way any vertical’s do — what sold, what’s still open, what stock moved.
→ Reports