Restaurant Merchant

v1.0.0-alpha.153 · A layout made for tablets · ~35 MB

Download APK

What's new in alpha.153 · A layout made for tablets

Turn your tablet sideways for a whole new view. In landscape, the app now uses the full screen — a side menu on the left, your orders in the middle, and the selected order's details on the right, all at once. Tap an order to see its items without leaving the list. Phones and upright tablets keep the layout you already know.

Settings, tidied up. Each settings section is now a card you tap to expand, so it's no longer one long scroll. The end-of-day report stays visible with its print options tucked away until you need them, and each store now shows only the order services it actually offers — with a Refresh to pick up any you switch on from the dashboard.

Test an order from any screen. A new Test order button in the top bar sends a test order through the whole flow — the alarm, the new-order screen, and printing — so you can check your setup end to end. It's clearly marked as a test and never counts as a real order.

From alpha.152 · Live courier tracking

Follow the driver without leaving the order. For deliveries handled by a courier service, the order screen now shows the driver's progress as it happens — dispatched, driver assigned, on the way, delivered — with the driver's name, one-tap calling, and the live tracking map right there in the order. Delivered orders collapse to a tidy one-line summary.

The app no longer asks you to do the courier's job. When a courier is handling the delivery, your part finishes at Mark Ready. The "Out for delivery" and "Complete" buttons now disappear for those orders, because the courier reports those steps themselves — previously tapping them just failed. If you ever need to close one of these orders yourself, use Override status in the order's menu.

Quieter driver updates. Driver progress now arrives as a silent notification, so it never rings like a new order. If an automatic dispatch fails, you'll see a clear message and a Retry dispatch button.

From alpha.151 · Your prep times, everywhere they matter

The prep time buttons now match what you set up. The new-order screen used to show a fixed set of prep time buttons that ignored the prep times configured for your store — so changing them had no effect on the terminal. It now shows your prep times, per service, and your default is pre-selected and highlighted. Pickup, delivery and dine-in each use their own list and their own default; previously delivery and dine-in orders were shown the pickup default by mistake.

From alpha.150 · Text receipts on the built-in printer

Text templates now print as text on Sunmi terminals. If you chose a text-style receipt template, the built-in printer on Sunmi devices still printed the image-style receipt instead. It now prints the text version you selected — which is also noticeably faster. Image templates are unchanged.

From alpha.149 · Order alerts on every screen

New orders now ring and print no matter which screen you're on. The new-order alert only existed on the Home screen, so if staff were viewing an order or in Settings when an order came in, there was no sound and no docket — silently. The alert now sits above the whole app and works everywhere.

Orders confirmed automatically now print too. If your store confirms orders automatically on a timer, the server could confirm an order before anyone tapped Accept — and the kitchen docket never printed. Those orders are now picked up and printed. (For security, the alert still doesn't appear on the PIN lock screen — those play a sound instead.)

From alpha.148 · More reliable order alerts

Stop missing orders when the app is in the background. Some terminals (especially Sunmi) on "Optimised" battery mode let Android throttle or kill the app in the background, so new orders could arrive with no ring and no print until someone opened the app. The app now asks — with a clear explanation first — to be exempted from battery optimisation, so it stays awake to receive orders. There's also a Battery optimization status row in Settings → Diagnostics showing whether the exemption is active, with a one-tap fix.

From alpha.147 · Live delivery tracking

Follow your delivery orders in real time. When a delivery order is auto-dispatched to a courier, its details now show a live tracking card: a status timeline (dispatched → driver assigned → on the way → delivered), the courier's name with one-tap calling, and a Live tracking button that opens the courier's live map. Once delivered, it collapses to a tidy summary. Only appears for stores set up for automatic courier dispatch.

From alpha.146 · Faster, reliable Bluetooth receipts

Image receipts print faster. Designed (image-mode) receipts used to download a large image and process it on the device before printing — slow, especially on Bluetooth printers. The app now fetches the receipt already prepared for the printer from the server and streams it straight through, so it starts printing sooner. It looks exactly the same as before — the same design from your dashboard template.

No more garbled Bluetooth receipts. The app now sends to Bluetooth printers at a steady speed matched to how fast the printer can actually print, so the printer's buffer can't be flooded — the cause of the jumbled text on long receipts. There's a Bluetooth print speed setting (Safe / Default / Fast / Max); Default just works on most printers, and Max uses the printer's own flow control for top speed if it supports it.

From alpha.140 · Pause individual add-ons

Run out of one topping? Pause just that add-on. You can now pause a single add-on or choice — like extra cheese or a gluten-free base — instead of the whole item. A new Add-ons tab on the Menu screen lists every choice; pause one there and it's marked sold out on every item that offers it, so you only do it once. Pauses can run for a few hours, the rest of today, until tomorrow, or a custom date and time you pick — and they lift automatically. Custom times now work when pausing items and sizes too.

From alpha.139 · A distinct chime for customer messages & an in-app update prompt

Customer messages now have their own bell. A new customer message used to play the same sound as a new order and chimed just once, so the two were easy to confuse. It now has a dedicated "Message Tone" — a different bell that keeps ringing until you open the chat and read every message, so you won't miss one during a busy service. (It's sound-only; it won't vibrate, and it never rings over a new-order alert.)

Know when an update is ready. When a newer build is available on the Play Store, a banner now appears at the top of the app. Tap Update to download it in the background, then Restart to install — no need to go hunting in the Play Store. (Side-loaded builds from this page are unaffected — the banner simply doesn't show.)

From alpha.138 · Background chat push notifications

Customer messages now reach you even when the app is closed. When a customer messages about their order, the device now gets a push notification on a dedicated "Customer Messages" alert — even if the app is backgrounded or shut. Tap it to jump straight to that order's chat. While the app is open, the in-app bubble and chime now appear within about a second instead of waiting for the next refresh.

Note: requires the matching server update to be live. Allow notifications when prompted so background alerts can show.

From alpha.137 · Live customer chat alerts & meal deal pricing

Chat bubble + chime when customers message you. When a customer sends a message from their order tracking page, a notification bubble now pops up above the bottom tab bar showing their name, order number, and message preview, and a chime plays so you don't miss it. Tap it to go straight to that order with the chat already open — or dismiss it with the ✕. (This is checked every 15 seconds while the app is open. A background push when the app is closed is still coming.)

Meal deal pricing is now clear. Meal deals show the full deal price on the "Meal Deal" header, and each item underneath shows "Incl." (covered by the deal) or "+$X" for any paid extras — in the order screen, the new-order popup, and on the kitchen prep ticket. No more confusing per-item prices that didn't add up.

From alpha.136 · Meal deal grouping

Meal deal items grouped in the app. Meal deal items now appear as a group in both the order detail screen and the new order takeover, with a "Meal Deal" header instead of showing as separate flat items.

From alpha.135 · EOD breakdown, meal deal dockets & smarter scheduled orders

EOD full breakdown. The End-of-Day section now shows payment breakdown (Cash / Card / Online) and service breakdown (Pickup / Delivery / Dine in), plus a revenue detail section with subtotal, fees, discounts, tips, and tax. After 1 minute without refreshing, the section dims and shows a large "Refresh data" button so you always know whether you're looking at live figures.

Meal deals print as one docket. Items in a meal deal now group onto a single prep ticket (labelled MEAL DEAL) instead of printing as separate individual tickets. Each item in the deal is still listed clearly on the combined slip.

Scheduled orders respect business hours. Scheduled order takeover screens no longer appear outside your operating hours — they queue silently and surface when the store opens, so the tablet isn't interrupted overnight.

From alpha.134 · Business hours & resume-all

Knows when you're closed. Outside your opening hours the header now shows "Outside hours" (slate) instead of a green Open, and the Pause option is disabled — there's nothing to pause when you're already closed.

Resume everything at once. When items are paused, the Menu shows a "Resume all" banner that lists exactly what will come back, then resumes it in one tap.

From alpha.130 · New look — rolling UI redesign (build 1)

New navigation. The bottom tabs are now a cleaner floating bar, kept centred so it stays tidy on larger countertop terminals as well as handhelds. This is the first of several UI refresh builds — more screens get the new look in upcoming builds. Everything else works exactly as before.

Preview build — please test on your device and tell us if anything looks off.

From alpha.128 · Server-side receipt rendering

Receipts now print exactly what you designed in the dashboard — always. The app no longer generates receipt layout on-device. Instead it asks the server to render each receipt and streams the result straight to the printer. For image-mode templates (the default) this is unchanged. For text-mode templates the server now produces the ESC/POS bytes directly, so the printed receipt matches the live preview in your dashboard pixel-for-pixel, regardless of which device or printer is being used. The in-app Receipt Designer and the per-printer Image/Text format switch have been removed — receipt format is now controlled entirely from the dashboard template's render mode.

From alpha.127 · Pause timing, clearer prep tickets & a safer unpair

Pause all items, for how long you choose. Pausing a whole category used to silently pause for 1 hour. Now it opens the same time picker as pausing a single item — Rest of today, 2 hours, 4 hours, or Tomorrow.

Hide sizes on prep tickets. A new per-printer option in Settings → Printers (under prep tickets) lets the kitchen slip leave off the size/variant line when you don't need it called out. Half-and-half splits and required choices still print.

Store name on every prep ticket. Each prep ticket now prints your store's name in a bold banner across the top, so a slip is easy to place at a glance.

Bigger scheduled-order times. On the scheduled-order alert screens the time is now much larger and brighter, so it's easy to read at a distance.

Safer unpair. Unpairing a device now requires a valid staff PIN — a wrong code is properly rejected instead of sometimes being accepted.

From alpha.123 · Bluetooth printing fix — no more garbled receipts

Fixes Bluetooth printing on a real printer. Receipts were printing in slow stop-start bursts, and a full order could come out as gibberish on a long roll of paper. The app was sending the whole receipt to the printer in one burst, which overran the printer's small memory buffer and corrupted the print. It now sends the receipt in small, paced pieces so the printer keeps up — receipts print cleanly and steadily.

From alpha.122 · Print to Bluetooth printers

You can now print to a paired Bluetooth thermal printer. Before, picking a Bluetooth printer let you add it but nothing actually printed — the app only knew how to talk to network (WiFi) and the Sunmi built-in printer. Now receipts, kitchen prep tickets, the End-of-Day report and the test print all go out over Bluetooth too. Pair the printer once in your device's Bluetooth settings, then add it in Settings → Printers → Bluetooth, send a test print to confirm it's the right one, and save. Auto-print on accept works the same as it does for WiFi printers.

If a Bluetooth print fails, check the printer is on, in range, and still paired in your Bluetooth settings.

From alpha.121 · Orders print when you accept — with the right times

Tickets now print the moment you accept an order, not the moment it arrives — so the kitchen ticket and customer receipt always show the confirmed prep/ready time and full order details, never a blank or too-early time. Orders you reject no longer waste paper. Scheduled orders are handled too: acknowledging one prints a receipt right away as your record, and the kitchen prep ticket prints later, when it's time to start cooking.

From alpha.120 · Required picks first, optional last, blank lines between

Prep tickets now group an item's lines so the cook reads them in the order the kitchen needs them. Size (variant) and required modifiers — the meat option, the must-pick choice — print at the top right under the item name. Then a blank line, then the base ingredients, then a blank line, then optional add-ons and "No <ingredient>" requests. Notes still print last. Each section is separated by a blank line for breathing room.

Required vs optional is detected heuristically — a modifier with no extra price and not a "No X" line counts as required. The API doesn't expose a required flag yet, so this works best in stores where mandatory choices are included in the base price.

From alpha.119 · Cleaner prep tickets when an ingredient is removed

When a customer removes an ingredient, the prep ticket now just leaves it off the list instead of printing a "NO <ingredient>" line. The cook sees only what should actually be on the plate — no extra noise to read past. (Only applies when the item is flagged "Print ingredients on kitchen ticket" in the Dashboard; items not flagged still show "NO <ingredient>" as their only signal that something changed.)

From alpha.118 · Bigger, more readable prep tickets

Prep tickets now print at a size the kitchen can read from across the room. The item name is double-width and double-height, and every line underneath it — variant, ingredients, modifiers, removed items, notes, plus the order number, type and customer name in the header — is double-height. No more squinting at the build line.

From alpha.117 · Per-product ingredient printing

Choose per menu item whether its description prints as an ingredient list on the kitchen prep ticket. The previous device-wide toggle is gone — flag items individually in the Dashboard (Menu → product editor → "Print ingredients on kitchen ticket"). Items not flagged print no ingredients, so descriptions that are choices or options (e.g. a snack pack) stop printing as nonsense.

From alpha.116 · List each item's ingredients on prep tickets

From alpha.114 · Choose what each printer prints

From alpha.113 · A separate kitchen ticket for every item

From alpha.112 · Cleaner order alarm

From alpha.111 · New-order screen pops in time with the alarm

From alpha.110 · Scheduled orders stand out in the list

From alpha.109 · Scheduled orders always get a heads-up

From alpha.108 · Scheduled orders, reworked

From alpha.107 · Customise what prints on the EOD report

From alpha.106 · No more double order sound

From alpha.105 · Scheduled-order alarm fix + alarm failsafe

From alpha.104 · View End-of-Day report for any day + print fix

From alpha.103 · Auto-accept timer picker no longer snaps back

From alpha.102 · Auto-accept timer fix + per-service auto-accept

From alpha.100 · Language selector + auto-detect

From alpha.98 · Sunmi EOD print fix

From alpha.97 · EU pairing + German locale deep pass

From alpha.95 · Demo pairing + driver map

From alpha.92 · Compact UI redesign

From alpha.90 · Deep i18n completion

From alpha.89 · Map label fix

From alpha.88 · ViewModel + network layer i18n

From alpha.87 · Deep i18n audit

From alpha.86 · EOD German label fix

From alpha.85 · Unpair fix + currency + status labels

From alpha.84 · Deep i18n sweep + EOD tax breakdown

From alpha.83 · Full i18n + translated receipts

From alpha.81 · Brand leak audit (white-label safety)

From alpha.80 · Orders toolbar slimmed down

From alpha.79 · Sunmi prints via sendRAWData (same fast path as network ESC-POS)

From alpha.78 · Sunmi printer feature parity + paper-size detection

From alpha.77 · Skip cutPaper on V3 (tear-bar hardware)

From alpha.76 · Skip printerInit on V3

From alpha.75 · Sunmi op-level diagnostics

From alpha.74 · Sunmi AIDL ordering fix

From alpha.73 · Sunmi diagnostics

From alpha.72 · Sunmi built-in printer support

From alpha.71 · Sprint 11 (Training — Tip of the day)

From alpha.70 · Sprint 10 (Ops intelligence)

From alpha.69 · Sprint 9 (Print resilience)

From alpha.68 · Sprint 8 (Kitchen mode + Undo toasts)

From alpha.67 · Sprint 7 (Map polish)

From alpha.66 · Sprint 6 Part 2 (Auto-promote + Settings)

From alpha.65 · Sprint 6 Part 1 (Scheduled redesign — Upcoming strip)

From alpha.64 · Sprint 5 (Bulk + Takeover polish)

From alpha.63 · Sprint 4 (Auth + Order Detail)

From alpha.62 · Sprint 3 (Menu bulk actions)

From alpha.61 · Sprint 2 (Settings rework)

From alpha.60 · Sprint 1

First ship of the design-audit rollout. Four tactical Orders-screen + header wins. All use the existing app palette — no new colours or component patterns introduced.

From alpha.59

From alpha.58

From alpha.57

From alpha.56

From alpha.55

From alpha.54

From alpha.53

From alpha.52

From alpha.51

From alpha.50

From alpha.49

From alpha.48

From alpha.47

From alpha.46

From alpha.45

From alpha.44

From alpha.43

From alpha.42

From alpha.41

From alpha.40

From alpha.39

From alpha.38

From alpha.37

From alpha.36

From alpha.35

From alpha.34

From alpha.33

From alpha.32

In this build

Requires Android 8.0+ · Works on Sunmi terminals & generic tablets
Enable "Install from unknown sources" before installing