Connecting…

Cotta

Open

Checkout

Table

Your Order
Subtotal
Total ($)
Total (៛)

Payment Method

💵
CashPay at counter
💳
Card / QRTap or scan to pay
🇰🇭
KHQR / ABA / WingScan shop QR
Cash Received

Your Orders

Table

🍽️

No orders yet

Live Orders

TimeTableItemsNotesTotalStatusAction

Reports

Sales analytics & performance

Staff Portal

Sign in to manage your attendance & schedule.

Cotta

Admin Panel
Overview
Operations
Menu & Stock
People & Access
Settings

Dashboard

Reports

Recent Orders

Live Orders

TimeTableItemsNotesTotalStatusAction

Menu Manager

#NameCategoryPriceStatusActions
NameItemsActions

Weekly Combos

Show special combo sets on the menu page

Show Combos on Menu

Display the combo section to all customers

QR Tables

How long before a scanned QR session expires. Set 0 to disable.
Token mode adds a signed key to QR URLs — regenerate QRs to apply.
Current Sale
Subtotal$0.00
Discount
-$0.00
Total ($)$0.00
Total (៛)៛0
Change $0.00
Items0

Kitchen Display

Real-time order queue

Inventory

Track stock levels per item

Discounts & Promos

Create promo codes & manage pricing

CodeTypeValueMin OrderUsesExpiresStatusActions

Auto Promotions

Rules applied automatically at checkout

Shift Management

Track cash in/out per shift

Shift History

Unpaid Bills

Outstanding orders awaiting payment

Expenses

Track daily purchased products and operating costs

Audit Log

All actions tracked here

Manager Mode

PIN-protected actions for managers

Set a 4-digit manager PIN. Required to approve voids, discounts over limit, and other sensitive actions.

Staff & Users

Staff Schedule Overview

W = Work day — = Day off L = Approved leave ✓ = Checked in Click any W or — cell to toggle work/day-off directly.

Roles & Users

AdminFull access including orders, reports, staff, and settings
StaffOrders page + Staff portal only
ViewerView menu only — no edit access
CustomerBrowse menu and place orders
NameUsernameEmail (Firebase Auth)RoleActions

Settings

🏪

Shop Information

Name, tagline, hours, currency

KHQR Payment Accounts

🖥️

Local Print Server

Silent printing via local Node.js service — no browser dialogs
Run START-PRINT-SERVER.bat on this PC once.
After that, printing is fully silent — no popups.
🔴 Print server offline
🔌

Printer Assignment

Select which printer to use for each station — saved permanently
Click to scan available printers
🧾 Cashier Printer
⚪ Not selected
Copies:
🍳 Kitchen Printer
⚪ Not selected
Copies:
🗂️

Category Routing

Choose which printer each menu category prints to
CategoryRoute To
📋

Print Queue

Jobs waiting to print when a printer comes back online
🕓

Print History

Recent print jobs with one-click reprint

Work Shifts & Late Rules

Configure shifts, OT, check-in range, and deductions

Shift Definitions

Shift A
Shift B
Shift C — Part Time

Check-in Range (meters from shop)

Set how close or far staff must be when checking in. Default is 10–30m.

Late Check-in Deduction Tiers

Example: 0–5 min = $0 (grace), 5–15 min = $1, 15–30 min = $2, 30+ min = $5
📢

Announcement Banner

Text or image above the menu

Show Banner

Display to all customers
🎨

Color Scheme

Customize brand colors
📖

Telegram Bot Setup Guide

Two bots — orders and staff attendance
1

Create a bot with BotFather

Search @BotFather on Telegram → send /newbot → follow prompts → copy the Bot Token
2

Create two Telegram groups

One for Orders & Waiter alerts, one for Staff attendance. Add each bot to its group as admin.
3

Get the Chat IDs

Add @userinfobot to each group — it replies with the Chat ID starting with -100…
4

Paste below and test

Fill in both tokens and chat IDs, click Save, then Test each one to confirm messages arrive.
🛒

Orders & Waiter Bot

New orders + waiter call alerts
👥

Staff Attendance Bot

Check-in, check-out, leave alerts
📍

Shop Location

GPS for staff check-in validation
Set your shop coordinates here. The check-in distance range is configured in Settings → Shifts → Check-in Range.
🔥

Firebase Setup

Real-time sync across all devices
1

Create Firebase project

Go to console.firebase.google.com → Add project → name it → Continue
2

Enable Realtime Database

Build → Realtime Database → Create Database → Test mode → choose nearest region (Singapore for Cambodia)
3

Register web app

Project Settings → Your apps → Web icon → Register → copy firebaseConfig
4

Paste config into index.html

Find the firebaseConfig block at the top of index.html and replace all YOUR_… values
5

Deploy

Terminal: npm install -g firebase-toolsfirebase loginfirebase deploy
🍽️

Combo

Pick 2 items

Your Order

🛒No items yet
Tables
Select a table, then merge or move held cashier carts when needed.
Add Table
Sign In

Passwords are secured by Firebase Authentication

Price
1
Add Item
Category
Add-on Group

Options

Add Staff
Staff passwords are managed in Admin → Roles & Users — create a user account there first, then link to this staff record by matching the username.

Working Shift & Hours

— change in Settings → Shifts

Weekly Schedule

Add User
Password is stored securely in Firebase Authentication — never visible in source code or database. To change a password later, go to Firebase Console → Authentication → find the user.
Request Leave
Monthly Schedule
Split Bill

Click items to move them between bills. Each bill can be paid separately.

Merge Tables

Select a table to merge with . All orders will be combined.

Change Table

Move order from to:

New QR Order
Void Order
Open Shift

Count your opening cash float before starting.

Close Shift
Split Payment
Total to pay
$0.00
Remaining: $0.00
KHQR Payment
ABA Bank
ACLEDA
Wing
$0.00
📱 QR Code
displays here

Scan with ABA Mobile

Daily Expense
Product Qty & Unit Price Total Payment
Daily Total
$0.00
Manager Approval

Enter manager PIN to continue

••••
Add Auto Promotion

Apply When:

to

Active

Apply this promotion automatically
Add Promo Code

Active

Code can be used by customers
Receipt
Set Stock Levels

Set how many units you have in stock. Items will be marked low stock below the threshold.