Skip to content

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.

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.

→ Setup, registers & shifts

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.

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

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.

→ Held, quotations & credit

Fired items land on Kitchen / KDS in the POS sidebar, and a ready-alert plays once per ready event rather than looping.

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

  • Retail — can share a branch and catalog with restaurant
  • Pharmacy — always its own branch, never combined with restaurant