🔒

KK Food Admin

Enter admin passcode

Tap your passcode. (Real login comes with the online-security step.)

KK Food — Admin

🔅 Screen 👥 Staff page ↗ View customer site ↗ 🔓 Log out 🚪 Log out all devices

Incoming orders

Accept or reject each order — the customer sees the update on their screen automatically.

📅 History

Create an offer

Live offers

Menu

Add / edit / delete categories and products. Toggle stock, set prices, add a photo. Use ± % to raise or lower prices by a percentage.

Sub-options (extras)

Add-ons customers can pick per product type. A product uses the set matching its “extras group”.

Required choices

Groups where the customer must pick — e.g. meat or sauces. Set how many they choose (Min/Max), then tick the group on a product in its Edit screen.

Tags / labels

Badges shown on product cards (Popular, Veg…). Edit the label, badge text & colours, or add your own — then tick them on a product in its Edit screen.

🛵 Delivery service
🟢 Accept orders now
Master switch — turn off to stop taking orders immediately. Auto-closes outside the hours below.
Outside these hours (or with the switch off) customers see “Closed” and can’t check out.
⚡ Auto-accept orders
ON: orders are confirmed automatically. OFF: staff accept/reject each order in WhatsApp.
⏱️ Prep time when auto-accepted — customer is promised this ready time (blank = shop's usual estimate)
🛍️ 🛵
⏳ Ring before auto-accepting — let the alarm ring this long first, then the order is auto-accepted
📅 Auto-accept scheduled orders
ON: scheduled pre-orders are confirmed automatically. OFF: staff accept/reject each pre-order when it arrives. (Independent of the toggle above.)
📅 Lead time — earliest a customer can schedule a pre-order (slots start this many minutes from now)
⏳ Ring before auto-accepting — let the alarm ring this long first, then the pre-order is auto-accepted
🔔 Sound alert for new orders
Beeps + shows a desktop/phone notification and flashes the tab title on arrival, and reminds every 30s until you accept or reject. (Keep this admin page open; allow notifications when asked.)
⏱️ Auto-reject unanswered orders
If no one accepts in time, the order is rejected automatically.
📲 WhatsApp on "Ready"
ON: tapping Ready for pickup / delivery opens WhatsApp with a ready message for the customer. OFF (default): it just marks the order ready — the customer already gets an SMS + on-screen status update, so WhatsApp isn’t needed.
💬 SMS on "Accept" (order confirmed)
ON: when you Accept an order (card payment is captured at this point), the customer gets a text confirming it's received and that you'll notify them when it's ready. OFF: no confirmation text is sent.
⏱️ Ask prep time on "Accept"
ON: accepting an order first asks how many minutes to prepare it — that time is shown to the customer and sent by SMS, and it learns your real prep speed over time. OFF: accepting works as before, with no time prompt.
💬 SMS on "Ready"
ON: when an order is marked Ready, the customer automatically gets a text message (sent from the shop phone via the SMS gateway). Requires the SMS gateway to be set up. OFF: no text is sent.
💳 Payment methods

How customers can pay. Card is held when the order is placed and only charged when you accept — released automatically if you reject.

💵 Accept cash
Cash on delivery / at pickup.
💳 Card payment providers

Turn on one or both. If both are on, the customer picks at checkout; if one, that one is used. ⚠️ Turn a provider on only after its keys are live in Supabase — otherwise those card orders won't actually charge.

Revolut
Revolut Pay, Google/Apple Pay & cards.
Revolut branded page: ON = customer pays on Revolut's hosted page (shows your logo/colour). OFF = on-site pop-up (no branding). If a payment ever misbehaves, turn OFF to fall back instantly.
Scan-to-pay QR (laptop only): shows a QR on laptops so the customer can pay on their phone (Apple Pay / Google Pay / card). Needs Revolut ON. If it ever glitches, turn OFF here instantly — cash & card keep working.
Stripe
Cards, Google/Apple Pay & Link.

The PUBLIC key — safe to paste here. pk_test_… for sandbox, pk_live_… for real. (The secret key goes in Supabase, not here.) It saves permanently.

🧪 Test mode (sandbox)
ON = provider sandbox with fake test cards, no real money. Turn OFF only when you're ready to take real payments live.
↕️ Payment order at checkout

Set the order customers see the payment options in. Only the methods you've enabled above will actually appear.

ℹ️ Header details (shown at the top of the customer site)
🍽️
👥 Staff page access

Your staff open the Staff page with their own passcode. With the new secure login, that code is now stored safely on the server — not on this page. To change the staff code, update the STAFF_CODE setting in Supabase (see SECURITY-RUNBOOK.md), same as your own admin code.

👀 Staff devices online
Checking…

Every open staff page locks itself and must re-enter the staff code. (Does not change the code.)

⭐ Customer reviews

New reviews are hidden until you approve them. Approve to show on the customer site, hide to take down, or delete permanently. + Add review lets you feature one from Google — paste the name & comment, pick the stars, and it shows on the site right away.

📝 Blog posts

Write in English, tap Auto-translate to fill Latvian & Russian (you can edit them), then Save. New posts appear on the live blog within a minute or two (they are baked into fast static pages for Google & AI search). Body tip: leave a blank line between paragraphs; start a line with ## for a subheading.

📊 Store uptime

How long Accept orders was paused during your opening hours each day, and by whom. (Automatic closing outside your hours isn't counted.)

📈 Website traffic

Real visitors (bots excluded) from Google Analytics. Latvia = local — mobile users show as “Riga” but they're in Valmiera.

Saved ✓
Adjust photo — drag to move · pinch or use the slider to zoom · then Use photo