Restaurant Management System POS, Kitchen Tickets, Tables, Delivery, Recipes and Day Close in One System
Take dine-in, takeaway and delivery orders on the counter POS or the waiter's phone, send kitchen tickets to the right station, split and settle bills, assign riders, run loyalty points, cost every dish from its recipe, and close the day with cash, card and wallet totals that match the drawer. Built by Xelent Solutions for restaurants in Pakistan, from a single café to a multi-branch chain.
Is the Order Pad Still the Only Link Between Your Floor, Your Kitchen and Your Cash Drawer?
Most restaurants in Pakistan run on a waiter's pad, a shouted order to the kitchen, a calculator at the counter and a manager who "knows" the food cost. It holds on a quiet Tuesday. On a Saturday night with twelve tables, three riders out and a birthday party asking to split the bill four ways, it does not.
The waiter writes "1 karahi" and the kitchen makes full when the guest wanted half; the re-make comes out of tonight's margin
Drinks come from the bar, naan from the tandoor and the main from the grill, and the only coordination is a waiter standing at the pass asking "is table 7 ready?"
Four friends want to split the bill; the cashier does it on a calculator, gets it wrong by Rs 40, and the queue behind them grows
A delivery goes out with the wrong rider, nobody knows which address he has, and the customer calls the restaurant instead of the rider
The owner thinks food cost is around 30% because that is what it was supposed to be; nobody has weighed what actually leaves the store
Shift cash is counted on a notepad; a Rs 2,000 shortfall is discovered a week later and three cashiers have worked since
Everything hangs off the order.
Table or Phone → Order with Variants & Modifiers → KOT to Station → Ready → Served or Rider Assigned → Split & Pay → Loyalty Points → Recipe Deducts Stock → Shift & Day Close
Every Table, Its Status and Its Open Order — on One Screen, Floor by Floor
Floors and tables are set up once with their seating. The floor view shows which tables are free, seated, waiting for food or waiting for the bill, and opens the order with a tap. Reservations hold a table for a guest and party size at a time; the waitlist queues walk-ins when the floor is full. The same table picker is on the waiter's phone, grouped by floor with free tables counted.
- Floors with tables and seating; status free, seated, food pending, billing or reserved
- Tap a table to open its order, add to it, move it or close it
- Reservations with guest, phone, party size and time; status from booked to seated or no-show
- Waitlist for walk-ins when the floor is full
- Same table picker on the waiter's phone, grouped by floor with free tables counted
- Takeaway and delivery orders live alongside dine-in on the same screen
Ground floor
8 tables · 1 reserved for 21:30
4 seats
Order #2214 · 38 min
2 seats
KOT-0917 · grill
4 seats
Free
6 seats
Split 3 ways
4 seats
Order #2219 · 12 min
8 seats
Malik · 21:30 · 7
2 seats
KOT-0921 · tandoor
2 seats
Free
First floor · family hall
6 tables · 1 free
6 seats
Order #2203 · 55 min
6 seats
Order #2210 · 31 min
4 seats
KOT-0919 · fryer
8 seats
Loyalty · Ahmed R.
4 seats
Free
10 seats
Birthday · #2216
Rooftop
4 tables · 2 free
4 seats
Order #2221 · 6 min
4 seats
Free
2 seats
KOT-0923 · bar
6 seats
Free
Six Steps From "Table for Four" to a Closed Day
Each step writes to the same order record. The waiter never re-tells the kitchen, the cashier never re-adds the bill, the manager never re-counts the drawer.
Take the Order
On the counter POS or the waiter's phone: pick dine-in with a table, takeaway, or delivery with an address; add items with variants and modifiers; attach a loyalty customer by phone number.
Order numbered · table marked seated
Send to Kitchen
The order splits into one kitchen order ticket per station. Each station prints or displays its own ticket; cooks mark items preparing and ready.
Every station cooks only its items
Serve or Dispatch
The floor sees the order go ready. Delivery orders are grouped into a consignment by area and assigned to a rider, who accepts and marks delivered from the app.
Guest served · rider tracked
Split & Settle
Split the bill by guest or amount, apply authorised discounts, redeem loyalty points, and take cash, card or wallet. Voids and refunds need a manager's authorisation.
Receipt printed · points earned
Recipe Deducts Stock
Each sold item consumes its recipe ingredients from stock. Wastage is logged separately with a reason, so food cost is measured, not assumed.
Food cost per plate known
Shift & Day Close
The cashier closes the shift with counted cash against expected; the day close rolls shifts into gross, discounts, tax, net and cash/card/wallet totals.
Drawer and books agree
Fifteen Modules. One Order Record.
An order raises kitchen tickets, consumes recipe ingredients, earns loyalty points, settles into a shift and rolls into the day close. Nothing is typed twice.
Counter POS
- Dine-in, takeaway and delivery on one screen
- Item search, categories, variants, modifier groups and combos
- Send to kitchen, mark paid, print receipt, reprint
Waiter & Rider App
- Android and iOS; login per branch
- Menu with photos, cart with variants and modifiers, table picker by floor
- Orders list and detail with live status; rider deliveries
Floors, Tables, Reservations & Waitlist
- Floors and tables with seating and status
- Reservations with party size and time
- Waitlist for walk-ins
Kitchen Order Tickets
- One KOT per station per order; printed or on screen
- Item-level preparing and ready status
- Station view with auto-refresh
Menu, Variants, Modifiers & Combos
- Categories and items with SKU, base price, tax rate and station
- Variants (half/full) and modifier groups (extras, removals, spice)
- Combos built from items with their own price
Splits, Discounts, Voids & Refunds
- Split bills; each split paid separately
- Order and item discounts; configurable taxes
- Void or refund an item or order with manager authorisation
Riders & Consignments
- Delivery orders grouped by area into consignments
- Assign rider, track assigned to delivered
- Rider app for acceptance and status
Customers & Loyalty
- Customer records with order history
- Points earned per rupee, minimum bill, point value, redemption caps
- Manual adjustments logged per customer
Campaigns & Feedback
- Campaigns to a customer segment by channel, template and schedule
- Send log per campaign
- Feedback captured per order
Recipes & Ingredients
- Ingredients with units; recipe per menu item
- Sale deducts recipe quantities from stock
- Food cost per item and per day
Stock, Purchases & Wastage
- Suppliers, purchase orders and supplier ledgers
- Stock levels and movement history
- Wastage logged with reason
Shifts, Cash Drawer & Day Close
- Open and close shifts with opening and closing cash
- Day close: gross, discounts, tax, net, cash/card/wallet
- Expenses against the day
Ledgers & Reports
- Account ledgers and supplier ledgers
- Purchase report, sale report and day book
- Filter by date, branch and shift
Branches & Brands
- Multiple branches, each with NTN, STRN, currency, timezone and tax config
- Suspend a branch to disable its users, menu and stock at once
- Users restricted to their branch
Staff, Roles & Permissions
- Staff records with designation and pay rate
- Roles with per-action permissions
- Authorisation for voids, refunds and loyalty adjustments
The Grill Gets the Grill Items. The Bar Gets the Drinks. Nobody Shouts.
Every menu item is assigned to a station — grill, tandoor, fryer, cold kitchen, bar, dessert. When an order is sent to the kitchen, it splits into one kitchen order ticket per station, printed or shown on that station's screen. The cook marks each item preparing and ready; the waiter and the counter see the order's state change in real time. Variants (half, full, family) and modifier groups (extra cheese, no onion, spice level) travel on the ticket exactly as the guest said them, and a voided item is struck off the ticket rather than cooked anyway.
Stations are set on the item
Grill, tandoor, fryer, cold kitchen, bar, dessert, or whatever your kitchen is divided into. An order with items from three stations produces three tickets.
Tickets carry exactly what the guest said
Variant and modifiers print on the line. "Chicken karahi · half · extra spicy · no coriander" reaches the grill in those words.
Cooks update, the floor sees it
Each item moves preparing then ready; the ticket is done when all its items are. The waiter's app and the counter show the change without asking.
Voids are struck off, not cooked
A voided item is removed from the ticket at the station with the authorisation recorded, so the kitchen does not cook what will not be paid for.
4 open tickets · oldest 11 min · auto-refresh
- 1 × Chicken Karahi · half · extra spicy · no corianderPreparing
- 2 × Seekh Kebab · beefReady
- 1 × Mutton Chops · fullPreparing
- 1 × Malai BotiQueued
- 2 × Chicken Tikka · leg pieceQueued
- 1 × Mixed Grill Platter · familyQueued
- 1 × Beef Burger · extra cheesePreparing
- 1 × Chicken Steak · mediumVoided
Table 12 · Ground floor · 4 guests
Dine-in order
1 × Chicken Karahi
Half · Extra spicy · No coriander
Rs 1,450
2 × Seekh Kebab
Beef
Rs 900
4 × Roghni Naan
Rs 400
2 × Fresh Lime
Sweet & salty
Rs 500
1 × Kheer
Family bowl
Rs 1,100
The Order Is Taken at the Table and Is in the Kitchen Before the Waiter Turns Around
The companion Android and iOS app logs the waiter in to their branch, shows the live menu with categories, search and photos, and builds the cart with variants and modifiers from a bottom sheet. Picking dine-in opens the table picker by floor with free tables counted; takeaway and delivery capture the phone number and address. A loyalty customer is looked up by phone and their points applied. Orders are reviewed, blocked if something is wrong, then sent; the orders list and order detail show status as the kitchen updates it. Riders see their deliveries, accept assignment and mark delivered from the same app.
- Login per branch; the menu, tables, taxes and riders come from the server
- Category rows, search and product cards with photos; variant and modifier bottom sheet
- Order type sheet: dine-in with table picker by floor, takeaway, or delivery with address
- Loyalty customer lookup by phone with points available and redemption applied
- Order review with validation before sending; orders list and detail with live status
- Notifications, profile and password change; riders see assigned deliveries and mark them delivered
Every Karahi Sold Takes Its Chicken, Oil and Tomatoes Off the Shelf
Ingredients are bought from suppliers on purchase orders and held as stock with a movement history. Each menu item has a recipe — ingredients and quantities — so selling it deducts stock and tells you the food cost per plate. Wastage is logged with a reason. Cashiers open a shift with opening cash and close it with closing cash; the day close rolls every shift into gross sales, discounts, tax, net sales and the cash, card and wallet totals the owner reads in the morning. Expenses and supplier ledgers sit alongside.
- Ingredients with units and stock levels; purchase orders on suppliers; supplier ledgers
- Recipe per menu item; each sale deducts the recipe quantities from stock
- Stock movement history and wastage with reasons
- Shifts with opening and closing cash per cashier; cash drawer tracked
- Day close with gross sales, discounts, tax, net sales, cash, card and wallet totals
- Expenses recorded against the day and the branch
Shift 1 · Morning · Asad
Opening Rs 5,000 · closing Rs 68,450 · expected Rs 68,450
Shift 2 · Evening · Hina
Opening Rs 5,000 · closing Rs 141,200 · expected Rs 141,550
Card & wallet
48 card · 31 wallet transactions
Discounts & loyalty redeemed
22 orders · manager-authorised
Voids & refunds
3 items voided · 1 order refunded · all authorised
Wastage
2.5 kg chicken · 1 L oil · reason: over-prep
Net sales
Rs 312,400
Food cost (recipes)
31.8%
Shift 2 cash
− Rs 350 short
Riders Know Where They Are Going. Regulars Know Why They Come Back.
Delivery orders are grouped into consignments by area, assigned to a rider, and tracked from assigned to delivered on the rider's phone. Loyalty is configured once — rupees spent per point, minimum bill to earn, point value, minimum points and maximum share of a bill to redeem — and then runs itself at the counter and in the app, with manual adjustments logged per customer. Campaigns go out to a customer segment on a chosen channel with a template and a schedule, and every send is logged. Feedback is captured per order so the owner hears about the cold biryani before Google does.
- Delivery orders grouped into consignments by area and assigned to a rider
- Rider accepts, picks up and marks delivered from the app; status visible at the counter
- Loyalty rules set once: rupees per point, minimum bill, point value, minimum and maximum redemption
- Points applied at the counter or in the app; manual adjustments logged per customer
- Campaigns to a customer segment with channel, template, schedule and send log
- Feedback per order, so complaints reach the manager with the order number attached
Samanabad · 3 orders · rider Usman · assigned 20:12. Two delivered, one en route; customer sees rider status from the counter.
14 visits this quarter. Redeemed Rs 200 on table F4 tonight; earns 1 point per Rs 100 above a Rs 500 bill.
Segment: customers with 3+ visits, no order in 30 days. 1,120 recipients, template approved, sends Thursday 11:00; log per recipient.
"Biryani was cold." Linked to table F1, KOT-0908, 55-minute sit. Manager notified; order history shows a 19-minute wait at the fryer.
Earn basis: bill total. Rs 100 per point, Rs 500 minimum bill, point worth Rs 1, redeem from 100 points, up to 20% of the bill.
Table T6 held. If not seated by 21:45 the host marks no-show and the table returns to the floor for the waitlist.
What Sold, What It Cost, What Came In — by Day, Shift and Branch
Every order, ticket, shift and purchase belongs to a branch. Staff see only their branch; the owner compares branches on the same numbers. Suspending a branch disables its users, menu and stock in one action.
Sale Report
Sales by day, order type, category, item, waiter and payment method; discounts, voids and refunds separated out.
Purchase Report
Purchases by supplier and ingredient for the period, with the supplier ledger balance alongside.
Day Book
Every cash, card and wallet movement for the day against orders, expenses and shifts.
Day Close History
Closed business dates with gross, net, tax and tender totals, and which shifts were short or over.
Food Cost
Recipe cost against sales by item and by day; wastage listed separately with reasons.
Kitchen Times
Ticket age by station and hour, so the bottleneck on Saturday night has a name.
Deliveries
Consignments per rider and area, assigned-to-delivered times, and open deliveries right now.
Customers & Loyalty
Visits, spend, points earned and redeemed per customer; segments for the next campaign.
Branch Comparison
The same sales, food cost and day-close numbers per branch, side by side for the owner.
Each branch is its own restaurant
Own legal name, NTN and STRN, address, currency, timezone and tax configuration. Every order, ticket, shift and purchase carries the branch.
Branch-level isolation
Users, roles, menu, ingredients and stock belong to a branch. A Lahore cashier cannot open a Faisalabad order; the owner sees all.
Suspend in one action
Suspending a branch disables its users and roles and deactivates its menu, items and ingredients together, and reactivating restores them.
Built for Kitchens That Are Busier Than Their Order Pad
The same system runs a twelve-table café with one cashier and a chain with a branch manager, a call centre and a fleet of riders. Roles decide who sees what.
Cafés & Single Outlets
One counter, a dozen tables, a small kitchen. You need the POS, tickets to the kitchen and a day close that matches the drawer, without a week of training.
- Counter POS with variants and modifiers
- KOT to one or two stations
- Shift and day close the owner can read
Full-Service Restaurants
Floors, reservations, waiters on phones, a kitchen with five stations and a bar. You need every ticket at the right station and every split bill right.
- Waiter app with table picker by floor
- Station tickets and kitchen times
- Splits, loyalty and manager-authorised voids
Fast Food, Delivery & Chains
High volume, riders, combos, campaigns and several branches. You need consignments, loyalty that runs itself and one set of numbers across outlets.
- Riders, consignments and rider app
- Combos, loyalty and campaigns
- Branch comparison and suspension
Roles included out of the box
Permissions are enforced on the server per branch — voiding an item, refunding a bill, authorising a void or refund, adjusting loyalty points and closing the day are separate abilities you grant or withhold per person.
Opening a new outlet or adding delivery?
Load the menu with variants, modifiers and stations before the first service, hand the waiters the app, and start with tickets instead of shouting.
Frequently Asked Questions
What restaurant owners and managers ask us first.
How do kitchen order tickets work with more than one kitchen station?
Each menu item is assigned to a station such as grill, tandoor, fryer, bar or dessert. When an order is sent to the kitchen, it is split into one kitchen order ticket per station, each printed or shown on that station's screen with the item's variant and modifiers written out. Cooks mark items preparing and ready, the ticket completes when all its items are ready, and the counter and the waiter's app see the status change.
Is there a mobile app for waiters and riders?
Yes. The companion app runs on Android and iOS. Waiters log in to their branch, browse the live menu with search and photos, build the cart with variants and modifiers, choose dine-in with a table picked by floor, takeaway, or delivery with an address, attach a loyalty customer by phone, review and send the order, and follow its status. Riders see the deliveries assigned to them and mark them delivered. Notifications, profile and password change are built in.
Can we split bills and handle voids safely?
Yes. A bill can be split into parts that are paid separately. Voiding an item or order and refunding are separate permissions, and each void or refund must be authorised by a user with that ability; the authorisation is recorded with the order. A voided item is removed from the kitchen ticket so it is not cooked. Discounts at order and item level are also permission-controlled.
How does recipe costing work?
Ingredients are set up with units and bought on purchase orders from suppliers. Each menu item has a recipe listing its ingredients and quantities. When the item is sold, those quantities are deducted from stock, so stock on hand and food cost per plate come from actual sales. Wastage is recorded separately with a reason, and the sale and purchase reports show food cost against revenue.
How does delivery work?
Delivery orders capture the address and are grouped into consignments by area. A consignment is assigned to a rider, who accepts it in the app and marks it delivered; the status is visible at the counter throughout. Riders are set up as users with the rider role, and the delivery report shows times per rider and area.
Does it run multiple branches?
Yes. Each branch has its own legal details, tax configuration, currency, timezone, users, menu, ingredients and stock, and every order, ticket, shift and purchase belongs to a branch. Users see only their branch; the owner sees all branches on the same reports. Suspending a branch disables its users and deactivates its menu and stock in one action. Receipts follow the same approach Xelent uses across its products, so FBR or PRA fiscal integration can be added where a branch needs it.
Know Tonight's Sales, Food Cost and Cash Position Before the Last Table Leaves
Bring your menu, your floor plan and last Saturday's bills. We will load them into a demo instance and walk you from a table order to a closed day in under an hour.
Built and run by Xelent Solutions in Faisalabad — a PSEB-registered software house.
What Our Clients Say
Trusted by businesses across industries. Here's what they say about working with Xelent.
"I am very happy to use this Laravel Site Builder. It is very powerful and easy to use. It save a lot of time for development. Everything is organized good and work very smooth. Bilal show strong technical skill and responsible attitude. He is serious and professional developer. I trust his work quality. I feel very satisfied with this project."
"I have worked with Bilal for close to twenty years. I trusted him then, and I trust him completely now, which in this industry says everything. Xelent delivers top-quality service across the board. Even as they've grown so much, the service has never slipped. Not even once. If you want a company that is dependable, forward-thinking, and consistently delivers at the highest level, Xelent is exactly that."
"Xelent has always doing incredible work for us, at a reasonable rate! We are most impressed with the communication and understanding of updates/changes that need to be done. We are a US based company, and have tried other developers overseas, but none of them have performed as well as Xelent. Working with Bilal is a pleasure, and we will continue to send website development projects their way. I'd recommend you have them bid your next project!"
"Its been a pleasure getting my work done by Xelent Solutions team. Highly understandable, least instructions given with most amount of work out put. Looking forward to work more in future as well."
"It's always a pleasure working with this team. A true professional, fast and on budget! Hired a couple times and will do it again."
"I couldn't be any happier about my experiences with Xelent Solutions. I had a very short, tight deadline, and they worked around the clock to get the job done - perfectly. Can't wait to work with them again!"
Trusted by businesses worldwide. See what our clients say about us.
