Your stops for today
Add or remove riders under Settings Staff — anyone whose role includes "Rider" shows up here automatically.
| Customer | Phone | Visits | Total spend | Credit | Last visit | Tier |
|---|
| Ref | Date | Description | Category | Logged by | Amount | Balance |
|---|
| Ref | Date | Category | Note | Logged by | Amount |
|---|
| Ref | Date | Paid to | Note | Amount |
|---|
Every income line carries a receipt reference and the staff member who logged it — the basics of an audit trail, sized for a single shop.
| Service | Unit | Rate (KES) |
|---|
Shown in the header and on every receipt and invoice. Square images work best — it's resized automatically to keep things fast.
A new branch starts with its own empty inventory shelf — visit Inventory after adding one to restock it.
Orders above the threshold below will suggest a deposit at checkout, collected instantly via M-Pesa STK Push.
This is the "workspace ID" — anyone who enters it at login sees and edits this same shop's live data. Treat it like a shared password, not a public name.
Required to log in as Owner. This is a light deterrent for a shared device, not encryption — anyone editing the page's code directly could still bypass it.
Everything here now lives in a real database on the server, not in this browser tab — so the database file itself (data/safisha.db) is the actual backup. This button just exports a read-only copy of what's currently loaded, handy for your own records or spreadsheets.
Waiting for the customer to enter their PIN…
Ticket #—