⏱ Clock in / out
Enter your PIN — the till knows if you're starting or finishing. Your boss sees your hours in NiagaKit for payroll: the back office is part of this same site, so your PIN and your hours pass between them on this device with nothing to send.
On shift now
Today's clock-ins
Custom / off-menu item
Current order
Tap ✎ on a cart line to note which item it's for (e.g. "less sweet" on the matcha, not the chocolate). Payment opens on its own screen with change calculation.
Dine-in tables
Manage tables
Tap a free table to start its order. Tap a busy table to add items, take payment, or print its ticket. A table frees automatically when its bill is paid.
Open orders & pre-orders
| # | When | Type | Customer | Items | Total | Paid | Actions |
|---|
📅 Team calendar: click GCal on a pre-order, switch the calendar dropdown to your shared team calendar and save — the whole team sees what to prepare and when. Or export the .ics and import it into the team calendar (Google Calendar → Settings → Import & export); re-importing updates events instead of duplicating.
Completed today
| # | Time | Type | Items | Total | Paid via |
|---|
Receipt history
| Receipt / Order | Date & time | Type | Customer | Items | Total | Paid via |
|---|
Every completed transaction lives here — search it, reopen it, reprint or email the receipt.
Start a shift
Open a shift at the start of the day, then close it at EOD to settle the drawer against the card terminal, cash, and online transfers.
Past shifts
| Closed | By | Sales | Over/Short |
|---|
📦 Products
Import menu from CSV
Works with a StoreHub-style product export — it reads Product Name, Category, Tax-Exclusive Price and Price Type columns. Variable-price items (e.g. delivery fee) will ask for the price at the till. "Service Charge" rows are skipped — KedaiPOS computes that itself.
Add product manually
Sizes with their own price (Pandan Yam 6"=145 / 8"=170) go above. Modifier options for this product appear once you create modifier groups below — tick only the options this product offers (e.g. an iced-only drink: tick just "Ice"). Leave all unticked to use the category default. Cost feeds the profit report.
Modifier groups (variants)
| Group | Type | Options | Categories |
|---|
Single choice = pick exactly one (Sweetness: Standard / Less / Extra). Multi choice = pick any (Add-ons). Tapping a product in a linked category opens the options sheet; the first option of a single-choice group is the default (usually "Standard"). ✎ edits a group. To make a drink ice-only or hot-only, edit the product and tick just the options it offers.
Product list
| Product | Category | Price |
|---|
🎁 Combos / bundles
| Combo | Items | Price | Saves |
|---|
Combos appear as 🎁 tiles on the sell screen. Tapping one adds its items to the cart at the combo price — the discount is split across the items so per-item COGS, stock counts and reports stay accurate.
📊 Reports
Sales summary
By payment method
By order type
By category
Top items
The CSV export is line-level (one row per item with the order's charges) — it opens in Excel/Google Sheets and can be keyed or imported into your accounting flow, including NiagaKit's records.
Profit & basket analysis (selected date range)
☕🍰 Sales mix & margin by category
📋 Menu engineering — what to push vs fix
Most/least profitable items
Popular mix & match (item pairs)
Insights — how to lift sales & basket size
COGS comes from each product's Cost field (set it in Products, or pull it from NiagaKit's recipes — the back office is a folder of this same site, so it is readable from this device with nothing to export). This is the profit lens — high revenue with thin margins is the trap; the insights look for attach-rate and bundle opportunities to raise sales per bill.
⚙️ Settings
Business / receipt details
Charges
How the till applies SST. Service tax is charged on the food and drink only — (subtotal − discount) — and the service charge is added after that, untaxed. RMCD is explicit: service charge is not subject to service tax and is not part of the tax base (Panduan Makanan & Minuman, para 12 and FAQ 8). Only charge SST if you are SST-registered: registration is mandatory once your taxable F&B turnover exceeds RM1,500,000 over a rolling 12 months, and an unregistered operator must not charge it at all. Takeaway is taxed the same as eat-in — Group B covers food service "whether eaten in or taken away", so the till does not exempt it. A packaging charge you levy is taxable; a delivery charge you levy yourself is not (since 1 Mar 2024), and voluntary tips never are. Keep this rate at 6%. 8% is a per-line rate, never a bill rate — it applies only to alcohol, tobacco/vape and their liquids, corkage and event management (V7 para 19(ii),(iv),(v)). If you sell any of those, set 8% on that product in the Products tab and leave this at 6%; the receipt then prints one SST line per rate. Bottled, canned and carton drinks are 6%, the same as anything you pour yourself — RMCD's V6 guide briefly said 8% and was corrected to 6% three days later in V7, and Service Tax Policy 3/2024 (Amendment No. 1) puts it beyond doubt. Snacks and whole fruit served loose are not taxable at all. All data stays in this browser (localStorage) — nothing is uploaded.
Source: RMCD, Cukai Perkhidmatan 2018 — Panduan Makanan & Minuman V7, 19 April 2024 (published in Malay only; the English guide is withdrawn) and Dasar Cukai Perkhidmatan Bil. 3/2024 (Pindaan No. 1), 29 March 2024. Rules re-checked 4 August 2026 — V7 is still the current F&B guide, and the 6% rate and RM1,500,000 threshold are unchanged.
Manager access
When set, the Products, Reports and Settings tabs ask for this PIN — staff can take orders, run tables and close the shift, but can't change the menu, prices, or see full reports. Tap 🔒 Manager in the top bar to re-lock. Honest limit: this is a convenience gate to stop casual changes, not bank-grade security — anyone technical could bypass it in a browser. True per-user accounts need the hosted version (see note below).
Data safety / backup
All data lives in this browser, against this web address — a cleared cache wipes it, and moving the till to a different address leaves it behind. Keep backups, and take one before any move.
Daily summary to owner
At shift close, a formatted day summary (sales, orders, by payment, over/short) is sent via your webhook (kind=daily_summary) — or copied for you to paste if no webhook. Route it to WhatsApp/email in your Make scenario. The team stock-count message lists each cake's remaining slices with a prep hint for the kitchen — copy it or send to WhatsApp.
Integrations — auto-calendar & email receipts
One-time Make setup (~15 min): create a scenario starting with Webhooks → Custom webhook (paste its URL above) → add a Router → branch 1: filter kind = preorder_event → Google Calendar → Create an Event (map title, startLocal, endLocal, details, your shared team calendar) → branch 2: filter kind = email_receipt → Gmail → Send an email (map to, subject, text). Failed sends queue here and retry automatically.