Grocery POS: what a supermarket or minimarket till needs

A grocery POS is the till system a supermarket or minimarket uses to scan, price and record every sale while keeping stock, expiry dates and supplier deliveries in step. What separates it from a general retail POS is volume: a long barcoded catalogue, frequent price changes, packs and single units, perishables and several tills at peak hour.
Below: what the till must handle, demo questions that expose a weak system, and an honest section on items sold by weight. For the features every shop needs, see our guide to cashier software for small shops.
What makes a grocery till different from a general retail POS
A clothing or phone shop sells a few items per customer from a short catalogue. A minimarket sells bigger baskets from thousands of barcoded items, with deliveries most mornings. That changes what the till must do:
- Speed per line matters most: every extra tap repeats for every item in every basket.
- Prices move with supplier lists and promotions, and the till must match the shelf label.
- Stock goes off: dairy, bread, meat and many packaged goods carry dates.
- Regulars buy on account, so the notebook of who owes what matters as much as the drawer.
- Peak hours need more than one till, all selling from the same stock.
So the till must be fast, and the back office must keep up, or the till's numbers stop meaning anything.
Scanning and building a long catalogue
Scan once, get one line. Most packaged groceries already carry a barcode: GS1 describes UPC/EAN as the 1D barcodes used in retail all over the world. An unknown code should alert the cashier, never add a blank line or guess. In Sandooq, the till reads EAN-8, EAN-13, UPC and GS1 codes, and an unknown code shows a "Product not found" warning that names the barcode instead of adding anything.
Items without a barcode. Loose bread, local goods and things you repack yourself often have no code. You need two answers: find the item by name on screen, and print your own barcode labels for everyday items. In Sandooq, the cashier can search by name in Arabic or English, or pick the item from the on-screen product grid by category. In the back office you can generate shop-made codes for products or packs that arrive without one and print labels for them.
Loading thousands of items. Ask for spreadsheet import that reports failed rows, and bulk price editing. Sandooq imports products from a CSV file with column mapping and a result for every row, exports the catalogue, and updates prices and costs for many products in one grid. Our guide to barcodes and SKUs for retail explains how to structure codes before you import.
One barcode per sellable item. Never let staff "borrow" a similar product's barcode for a new item: the till then sells one product while the shelf loses another.
Packs, single units and price changes
Groceries arrive in cartons, sell by the piece, and sometimes sell by the carton too. GS1 defines a trade item as any product priced, ordered or invoiced at any point in the supply chain, so the carton and the piece are priced and identified separately, though they share one stock.
What the till has to get right:
- One stock, two ways to sell it. Sell a carton of 24 and the shelf count drops by 24 pieces.
- A carton price of its own, if you want to sell the carton for less than 24 single pieces.
- No silent mix-ups. Scanning a carton must never quietly ring up one piece at the piece price.
In Sandooq, each product has a base stock unit, such as the piece, and can have pack units such as a box or a carton. Each pack has its size in pieces, its own barcode and, if you set one, its own selling price; without one, it sells at the piece price times the pack size. When a product sells in more than one unit, the till asks the cashier which one (piece, box or carton) when the item is scanned or tapped, and stock is always counted in the base unit.
Price changes and margin. Change prices in bulk from the back office before opening, not line by line at the till while a queue forms, and check what a promotion does to your margin before you publish it. Sandooq keeps a cost on every product, so margin shows on the sale line and in reports. Decide, too, who may give a line discount, how large, and when a manager must approve it.
Items sold by weight: ask before you buy
Loose produce, cheese, olives, meat and nuts are where grocery tills differ most, so ask every vendor exactly how a weighed item gets onto the bill. Three answers are common:
- The cashier types the weight as a decimal quantity, for example 0.750 kg.
- A label is printed where the item is weighed, and the till scans it. GS1 standards provide for this: GS1 DataBar can hold product attributes such as the weight of fresh foods, and GS1 defines an Application Identifier for net weight in kilograms on variable-measure items. Whether a given till reads that weight is a separate question.
- The till takes the weight directly from equipment at the counter.
Test the answer in the demo with one of your own weighed items, then check that the receipt shows the weight and amount, stock drops by the weight sold, and margin reports read the fractional quantity correctly.
In Sandooq specifically, a product can be sold on a weight unit such as the kilogram. When the cashier picks it, the till opens a quantity entry that accepts decimals, and quantities are kept to three decimal places; a product counted in pieces refuses a fraction. The cashier enters the weight: Sandooq does not read it from a printed weight label or from other counter equipment. If produce is a big part of your sales, see that flow on your own items first.
Expiry dates and batches
Some expiry dates are set by regulation, not only by the producer. In Saudi Arabia, for example, the Saudi Food and Drug Authority lists a technical regulation on mandatory expiration dates for food products, and a separate standard for voluntary ones. Either way, the shop needs to know what is close to its date while there is time to act.
- Receive into batches. Record the expiry date when the delivery arrives, not when someone notices it on the shelf.
- Sell the earliest date first. Rotate stock so the nearest date sits at the front.
- Record disposals with a reason. Expired, damaged and stolen are different problems; logged as "stock missing", none gets fixed.
The batch and expiry can also travel inside the barcode: GS1 defines Application Identifiers for batch or lot number (10) and expiration date (17). Ask each vendor whether its till reads those fields or only the product number.
In Sandooq, stock can be tracked in batches with expiry dates, with a view of what is close to expiring, and expired or damaged stock is recorded as a disposal with reason codes you define. Our guide to perishable inventory and expiry tracking covers FIFO, FEFO and a regular expiry check.
Supplier deliveries and purchase orders
A grocery may take deliveries from several suppliers in a week. Four steps keep stock honest:
- Order what you need from the supplier.
- Receive what actually arrived, not what was ordered, recording short and damaged cases at the door.
- Match the supplier's bill to what was received.
- Pay the supplier, in part or in full, against those bills.
Skip receiving and a shortfall surfaces weeks later at the stock count, when nobody remembers which delivery was short. In Sandooq, a purchase order can be received in full or in part, stock and cost update from what actually arrived, the supplier's bill is recorded against the receipt, and suppliers can be paid from the till or the back office. Our grocery supplier receiving walkthrough follows one order from 24 units ordered to 20 received.
Regulars on account, several tills and the end-of-day count
Customers on account. Move the notebook into the till: a credit limit per customer, the balance visible at the counter, and old notebook balances carried in once as opening balances, never as sales. In Sandooq, a customer's balance and credit limit are checked at the till before the sale completes, and an existing debt can be recorded as an opening balance together with who approved it. Our guide to running a customer tab covers limits and collections.
Several tills. Every till must see the same products, prices and stock, and every cashier must answer for their own drawer. In Sandooq, a store can run more than one till at once (your plan sets how many), all reading the same products, prices and stock. Each cashier works in their own cash session, opened with a float and closed with a count, and a live till can be handed from one cashier to the next without closing the day.
Closing the day. Count each drawer against what the till expected, close with a Z report, and check any difference that evening. Sandooq closes the trading day with a Z-read showing takings by tender and the drawer position.
When the connection drops. Ask every vendor for the exact list of what keeps working. In Sandooq specifically: Cash checkout can continue during a connection drop when you are already signed in and the cash session is open. Sales queue on the device and sync when the connection returns. Signing in, card payments, receipt lookups and opening or closing a cash session need a connection. Keep the POS tab open while working offline.
Our guide to what offline checkout can and cannot do explains how to check queued sales afterwards.
Questions to ask any grocery POS vendor in a demo
Bring part of your product list, a real supplier invoice and a few awkward items, and ask the vendor to do these live:
- Import fifty of your products and show the rows it rejected.
- Scan a barcode the system has never seen.
- Sell a carton and a single piece of the same product, then show the stock count.
- Ring up a weighed item, then show the receipt and the stock movement.
- Find an item with no barcode by typing its Arabic name.
- Receive a delivery two cases short and match the supplier's bill.
- Dispose of an expired batch with a reason.
- Sell on account to a customer already over their limit.
- Close two tills and the day, then read the Z report.
If any step needs a call to support, imagine it at the evening rush. Once you have chosen, our guide to speeding up checkout helps keep the queue moving.
Frequently asked questions
What should a grocery POS system include?
Fast scanning with a warning for unknown codes, name search, bulk import and price editing, piece and pack sales from one stock, a tested way to sell by weight, expiry batches, supplier receiving, customer credit limits, and several tills with their own cash sessions and an end-of-day report.
How does a supermarket POS handle items without a barcode?
The cashier finds the item by name or picks it from the product screen, and the shop prints its own barcode labels for items it sells often. Labels are faster; name search covers the rest.
Can a grocery POS sell items by weight?
It depends on the system. Some let the cashier type the weight as a decimal quantity, some scan a weight label printed where the item was weighed, and some take the weight from equipment at the counter. Test the exact method with your own produce in a demo, then check the receipt and the stock.
How do grocery stores track expiry dates in the POS?
By receiving stock as batches with an expiry date, reviewing near-date stock on a schedule, selling the earliest date first, and recording expired stock as a disposal with a reason, so waste stays separate from theft.
Can regular customers buy on account in a grocery POS?
Yes, if the system keeps customer balances. Look for a credit limit the till checks before the sale completes, payments recorded against the balance, and old notebook balances carried in once as opening balances.
How many tills does a minimarket need?
Count the queue, not the floor area. If customers regularly wait at your busiest hour, plan another till for that hour, even if it is closed the rest of the day. Every till should share one stock, with a separate cash session per cashier.
Sources
- GS1 — GS1 Barcodes — UPC/EAN in retail worldwide; GS1 DataBar can hold fresh-food weight.
- GS1 — Global Trade Item Number (GTIN) — a trade item is anything priced, ordered or invoiced in the supply chain.
- GS1 — Application Identifiers — AI (10) batch or lot, AI (17) expiration date, AI (3103) net weight in kg for variable-measure items.
- Saudi Food and Drug Authority — technical regulations and standards for the shelf life of food products — SFDA.FD 150-1 (mandatory expiration dates) and SFDA.FD/GSO 150-2 (voluntary).
Next step
See how Sandooq handles a grocery counter on the Sandooq for grocery stores page, then book a demo and run the checklist above on your own catalogue. Plan details, including each plan's product limit, are on the pricing page.




