Korat
POS systems

Cafe software where one latte stays one menu item

A cafe POS does not fail on speed. It fails on the single latte that becomes ten menu entries — hot, iced, blended, three sizes, two sweetness levels, an extra shot, a syrup — until the sales report is unreadable by the end of the first month.

A shop pricing by head and by clock instead — a buffet — prices people rather than lines, and needs a different screen for it. So the menu here is built the way the shop thinks. One item is *latte*, and what makes them differ are the option groups hanging off it: hot/iced/blended, cup size, sweetness, toppings. Each option carries its own price delta, and each group declares whether it is required and how many choices it allows. Free to use, no monthly fee.

The consequence is that the report can say how many lattes sold, rather than making you add up *hot latte* and *large blended latte* yourself. And because the price delta belongs to the option instead of being typed into a notes field, the docket at the bar and the line on the bill always say the same thing.

Toppings and extra shots on one line

  • Required groups, such as hot/iced/blended — the drink cannot be ordered without a choice.
  • Multi-select groups, such as toppings — with a cap on how many may be chosen.
  • Zero-delta options, such as sweetness — information for the bar, not money.
  • A free-text note per line, for the things that should not become a permanent option.
  • Every delta is priced server-side when the order is placed; the device at the bar cannot set a price.

If the shop sells a set — a coffee with a croissant at a fixed price — that is a combo, with its components stored as names and quantities. If a component is discontinued, the combo is not silently hidden; the order is refused with the component named.

Most cafes have items that only exist for part of the day: a breakfast set, a bake that comes out once, a seasonal drink. Each menu item can carry its own selling hours. Outside them it cannot be ordered and the card says why, instead of the order being accepted and the bar refusing it later.

At shop level, opening hours can be set with a last-orders buffer: as it approaches, the menu warns that the kitchen is closing, and after it the system blocks ordering. The menu availability from ingredients tile goes further and closes a drink by itself when its ingredients run out — nobody can order matcha on the day the matcha powder is gone.

The bar, the counter and the person at table six

Orders from every route arrive on one screen. Staff accept or reject each one before it becomes work, then move it along stage by stage. The console carries live badges refreshed every few seconds — orders in progress, tables calling for staff, takeaway orders — with a red bar the moment a table calls.

  • Guests sitting in scan the table QR and order for themselves, and that QR is a single-use token opened by staff, not a table number that can be photographed and used from home.
  • Takeaway customers order ahead through the guest takeaway tile and collect at the time agreed.
  • A shop with a counter queue can use the queue setup and seating tile; the guest holds the ticket on their phone.
  • A shop that delivers itself can set distance-based delivery fees, priced server-side like everything else.

Happy hours, points, and the Wi-Fi password

Cafes live on regulars, not on passing trade. The promotions and coupons tile sets happy hours directly — twenty percent off between two and four — alongside code coupons, member pricing and free delivery above a threshold. Points run at whatever rate the shop sets, against rewards it defines, and are taken back if a bill is cancelled.

Two small tiles a cafe uses every day: Wi-Fi password keeps the shop's password where guests can read it from the shop's own page instead of on a card taped to the grinder, and shift checklists covers open and close — flush the machine, check the milk, count the drawer. Both are tiles in the business console, next to the rosters and payroll a cafe with staff needs.

Cost per cup, not just takings per day

The menu cost and margin tile answers the question most cafes cannot: what does this cup have to sell for to be worth making? When beans, milk and cups are received through the purchasing tile, that batch's cost is recorded, and when a drink sells, cost of goods sold leaves inventory at the same figure. The margin in the report is real, not estimated.

There is no receipt-printer driver. A receipt can be reprinted through the browser and turned into a message to send, but there is no direct thermal-printer connection. It is one of the three questions answered no.

Table plans are a list, not a drag-and-drop layout. There is a full table register with a QR per table, but no graphical floor plan.

Frequently asked questions

Can I offer hot, iced and blended without making three menu items?

Yes. Make it a required option group with one choice, and let each option carry its own price delta. The menu keeps one item, and the report can say how many lattes sold in total.

Can a drink take several toppings at once?

Yes. An option group declares how many choices it allows, and every price delta is calculated server-side when the order is placed — the device at the bar cannot set a price.

Can a menu item sell only in the morning?

Yes. Each item can carry its own selling hours; outside them it cannot be ordered and the card explains why. Items can also close themselves when their ingredients run out.

Can I run a happy hour in the afternoon?

Yes. The promotions and coupons tile has happy hours built in, alongside code coupons, member pricing and free delivery thresholds. The one exception is alcohol, which never receives a promotional price under Thai law.

Can I connect the receipt printer I already have?

Not yet — there is no printer driver. Receipts reprint through the browser and can be sent to the customer as a message. If every bill has to produce a thermal slip, weigh that before deciding.

Build your first coffee menu item

Create a restaurant or cafe in the console and hang a hot/iced/blended option group off a single item.