Korat
POS systems

A grocery till that knows what is selling and what is about to run out

A grocery does not lose money at the counter. It loses it to stock that ran out unnoticed, to stock that sat until it expired, and to nobody being able to say what this month's profit actually was.

A grocery POS therefore has to start at stock and cost, not at the cash drawer. And the real competitor in a shop this size is not another brand — it is a paper notebook and a calculator. So the system has one thing to prove in the first week: that it is faster than writing by hand, and that it answers the questions the notebook cannot. The five things that decide whether a till survives two years are on choosing a POS system. Everything on this page is free to use, with no monthly fee.

Enter a product once, sell it in the shop and online

Each product carries photos, a description, a price and stock. Variants in the retail module are generated from attributes rather than typed one by one: declare the axes that genuinely differ — pack size, flavour — and every combination becomes a variant that holds its own stock. This heads off the most common grocery mess, where the large bottle and the small bottle are entered as two separate products, the report cannot add them up, and only one of them has a correct count.

Counter sales and online orders land in one ledger, so sales totals, bill counts, average bill, the split between cash and PromptPay, the top five sellers and the seven-day chart all describe the whole shop rather than one channel.

Stock that moves itself, and warns before it is gone

  • Selling decrements stock, from the counter till and from online orders alike.
  • A low-stock threshold can be set per product, and the console shows a live badge so nobody has to go and look.
  • Out of stock is written across the photo before the tap, not discovered at checkout.
  • Discontinuing removes an item from the storefront without deleting it — old bills stay readable because a bill stores its own names and prices.

Buying and payables live in the same system as selling

The purchasing and payables tile in the business console covers the buying side end to end, from a purchase order to goods actually received into stock — and that receipt is what writes the cost into the books, rather than a number guessed later. This matters more than it looks, because it is what makes "what did we actually make this month" answerable.

When something sells, the cost of what left the shelf is taken out of inventory in the ledger at the cost that batch was really bought for. The system does not recompute a cost anywhere, so the margin in the report is not an estimate.

Goods received Batch cost recorded Stock per variant A sale draws it down Shop + online One ledger Cost of goods sold is taken at the batch's real purchase cost Low-stock thresholds Washing-up liquid 800 ml 3 left Sugar 1 kg 24 left
Illustrative stock figures. Low-stock thresholds are set per product, and cost of goods sold uses the batch's real purchase cost

Selling on credit, with a due date the system works out

A grocery with regulars who settle at the end of the month needs two things: who owes what, and when it falls due. That runs through the business documents — the contacts book stores credit days per customer, and when an invoice is raised for them the due date is derived automatically from those days rather than typed. Set credit days to zero if you want to type the date yourself.

Documents also carry a withholding tax field for corporate customers, calculated on the pre-VAT amount as Thai law requires, and internal notes kept separate from the notes printed on the paper — so "always pays late" can be recorded without the customer reading it.

Thai tax invoices cannot be issued. Only VAT-registered businesses may, and there is nowhere in the system to record that registration. Quotations, invoices, receipts and credit notes are all available. It is one of the three questions answered no.

No connected scales and no sale by weight. The selling unit is always a piece, so a shop that weighs most of what it sells is not yet a fit. A USB barcode scanner does work, because each product carries a code and the till's search box matches it — what is missing is a scan mode that adds to the basket for you. We would rather say so here than let you find out during setup.

Discounts, coupons and member prices

A sale price can be scheduled to a date range, and the storefront shows it beside the struck-through original with a percentage badge, so the size of the discount is legible rather than guessed. The promotions and coupons tile adds four more: code-entry coupons, free delivery above a threshold, happy hours, and member pricing.

One rule is fixed and cannot be switched off in settings: alcohol never receives a promotional price, under section 32 of the Thai Alcoholic Beverage Control Act. It lives inside the server-side pricing, not in a preference.

Regulars and points

Fridges, shelving and the machine on the counter belong in the asset register instead, which is a separate tile from stock, and a shop with staff gets rosters, GPS clock-in and payroll from the same account — My workplace is the employee's side of it. The customer list builds itself from real bills rather than being typed twice. Each person carries notes and tags, a purchase history, and points at whatever rate the shop sets, against rewards the shop defines. If a bill is cancelled, the points it granted are taken back — so the balances do not quietly drift over a year.

Frequently asked questions

Can I use a barcode scanner?

Yes, in the way that matters. Every product has a *product code* field — put the barcode number in it — and the till's search box matches both the name and that code. A USB or Bluetooth scanner that types like a keyboard fires into the search box and filters to the product at once. What is missing is a dedicated scan mode that drops the item into the basket without a tap.

Can I sell by weight, like rice from a sack?

Not yet. The selling unit is always a piece and no scale is connected. The workable approach today is to define products at the pack sizes you actually sell — a one-kilogram bag — and sell bags.

Can I see margin per product?

Yes. When goods are received through the purchasing tile, that batch's cost is recorded, and when the item sells, cost of goods sold leaves inventory at the same figure rather than a recomputed one. The margin shown is the margin against what you really paid.

Can I open credit accounts and chase them?

Yes, through business documents. The contacts book holds credit days per customer, and an invoice's due date is derived from that automatically. There is also an internal notes field the customer never sees.

I have several branches. Can I see combined figures?

Yes. The branches tile totals sales across every branch in the group and copies a whole product list to a new branch in one action, while each branch keeps its own stock and its own staff.

Enter ten products and make a sale

Create a retail business in the console, open the till, and watch stock come down off a real bill.