
In short: The best ERP for supermarkets and multi-branch chains posts every till sale to stock and accounts at once, runs central purchasing and branch replenishment, controls expiry, cycle counts and cash-up in every branch, and issues simplified invoices under ZATCA e-invoicing Phase 2. Start by measuring what shrinkage and stock-outs cost you today, then score vendors on ten weighted criteria. This guide includes a worked example for a six-branch chain and a free kit (PDF guide and Excel workbook) for scoring and stock counts.
Saturday morning. The operations head of a six-branch supermarket chain opens three files: the sales report from the till system, the stock sheet the storekeeper updates, and the purchase ledger from accounts. The three numbers do not agree. One branch ran out of fresh milk on Thursday evening; in another, forty cartons of yoghurt were written off because they expired on the shelf. The finance manager wants to know why gross margin fell two points this month, and nobody can answer before the annual stock count.
This guide is for the owner, finance manager and operations head of the chain. It does not explain what an ERP is. It explains what one must do for a Saudi supermarket with 50 to 500 staff, how to put a riyal figure on the problem before you buy the fix, and how to compare vendors without letting the demo lead you.
Supermarket margins are thin, so a chain does not need one big mistake to lose a month's profit. Six small leaks that repeat every day are enough:

For more on the causes of shrinkage in Saudi stores and how to reduce it, read shrinkage in retail.
Before you ask any vendor for a quote, price the problem. This is a hypothetical chain; every figure is a stated assumption for you to replace with your own:
| Line (monthly, at cost) | Per branch | Six branches | Where it comes from |
|---|---|---|---|
| Expired or damaged stock written off | 9,000 | 54,000 | Dairy, bakery, fruit and vegetables |
| Unexplained stock-count variances | 7,500 | 45,000 | Theft, receiving errors, wrong barcode scans |
| Price and promotion errors at the till | 2,500 | 15,000 | An offer that ended but was not removed, or a price not updated |
| Total shrinkage | 19,000 | 114,000 | 2.11% of sales |
| Margin lost to stock-outs | 5,400 | 32,400 | 12 × 150 × 50% × 30 days × 20% |
| Monthly cost | 24,400 | 146,400 | About SAR 1.76 million a year |

A quick rule from the example: every 0.1 point of shrinkage is worth SAR 5,400 a month in a chain selling SAR 5.4 million. That is why "our system reduces shrinkage" is not enough from a vendor. Ask them to show where each line of the table appears in their system: expiry write-offs, count variances per branch, and the effect of promotions at the till. Once you know your number, compare it with the cost of a system on the HAL pricing page, or book a demo and bring the table with you.
A point-of-sale system alone is enough for a single shop. A chain needs every sale to reach four places without being typed again: stock in the right branch, the accounting entry, the replenishment need, and management reports. If you are still deciding whether you need an ERP at all or a till will do, start with our article on ERP vs POS. Restaurant groups face the same question with recipes and a central kitchen; we cover that in the best ERP for restaurants and food manufacturers.

What to ask to see in the demo:
The common mistake is to pick one model for every item: either head office buys everything, or each branch orders for itself. It works better when the item decides how it is replenished, based on how fast it moves and how long it keeps:

| Item type | Example | Suggested replenishment |
|---|---|---|
| Fresh, fast-moving | Bread, fresh milk | Daily direct delivery from the supplier to the branch, on an order the system suggests from yesterday's sales |
| Long-life, fast-moving | Rice, oil, water | Central purchasing in bulk, then transfers from the warehouse to branches |
| Fresh, slow-moving | Specialty cheeses, imported juices | Small quantities and an alert before expiry |
| Long-life, slow-moving | Household goods, specialty spices | Minimum and maximum per branch, reviewed monthly |
This is also where supplier rebates (volume and contract incentives) come in. Purchasing negotiates them, then they are lost because nobody tracks whether the condition was met. Ask the system to hold each supplier's agreed terms and prices and to total every branch's purchases from that supplier in one report, so you claim the rebate on time instead of remembering it at year end.
Expiry: the rule for food is first expired, first out (FEFO), not first in. That requires receiving to record the lot number and expiry date, and the system to alert you early enough to mark the item down or move it to a branch that sells it faster. Ask the vendor directly: is the expiry date recorded for each lot at receiving? Is there a "expiring in the next seven days" report for each branch?
Cycle counts: instead of an annual count that closes branches for a day, count a small part every week: fast-moving and high-value items weekly, the rest monthly on rotation, and a full count once or twice a year. Count variance = (counted quantity − system quantity) × unit cost. An example from a weekly count in one branch:
| Item | In system | Counted | Variance | Unit cost | Variance value |
|---|---|---|---|---|---|
| Fresh milk 1 L | 240 | 228 | −12 | 4.10 | −49.20 |
| Sunflower oil 1.8 L | 96 | 90 | −6 | 17.50 | −105.00 |
| Basmati rice 5 kg | 60 | 61 | +1 | 38.00 | +38.00 |
| Net | −SAR 116.20 |
Give every variance a reason from a fixed list (damaged, expired, receiving error, sales error, unknown). After two months, "unknown" becomes a figure you track per branch instead of a general feeling.
Promotions and prices: in a chain, a price changes in one place and reaches every till, and each offer has a start and end date that the system applies, not the cashier. Ask for a report that compares an item's sales before, during and after a promotion; otherwise you will never know whether it made or lost money.
Cash-up: each till opens with a float and closes at the end of the shift by counting cash and reconciling it with cards (mada and others) and wallets. Voids need a supervisor's approval and a recorded reason. The finance manager then sees each till's and each branch's shortages and overages in one report the next morning, instead of papers collected at the end of the week.
Most supermarket sales are simplified tax invoices (business to consumer). In Phase 2 (the integration phase), ZATCA's E-Invoicing Detailed Guideline says a simplified invoice is stamped, carries a QR code and is given to the buyer immediately, then sent in XML to the FATOORA platform for "reporting" within 24 hours of issue. Standard tax invoices between businesses (B2B), such as wholesale sales to a restaurant or hotel, go through "clearance" by the platform before they are shared with the buyer. ZATCA rolls Phase 2 out to taxpayers in targeted groups and notifies each group at least six months in advance.
What this means for a chain: every till in every branch is a device that issues invoices, and what it issues must reach the platform on time even if the internet is down for hours. Ask the vendor: are invoices sent from the till or from the central server? What happens to an invoice issued offline? And check that the vendor is listed in ZATCA's e-invoicing solution providers directory, noting that ZATCA states a listing is not an endorsement of any software.
Score each system on each criterion from 0 (not there) to 5 (we saw it work in the demo with our own example), then multiply by the weight. Do not give points for something you were told exists but did not see.

| # | Criterion | Weight | What to ask to see |
|---|---|---|---|
| 1 | Till linked to stock and accounts | 15 | Sale, return and outage, as in the section above |
| 2 | Central purchasing, branch replenishment and transfers | 15 | A suggested replenishment order from sales, and a warehouse-to-branch transfer |
| 3 | Expiry and lots | 10 | An expiry date per lot, and an "expiring soon" report per branch |
| 4 | Cycle counts and variance posting | 10 | A partial count by barcode, a reason for each variance, and its accounting entry |
| 5 | Branch-level prices and promotions | 10 | An offer with start and end dates that the till applies automatically |
| 6 | Supplier agreements and rebates | 10 | Supplier terms and every branch's purchases from them in one report |
| 7 | Cash-up per till and branch | 10 | Opening float, close that reconciles cash and cards, voids with a reason |
| 8 | E-invoicing (simplified and standard) | 10 | Reporting the simplified invoice, clearing the standard one, handling outages |
| 9 | Branch and category reports | 5 | Margin per branch and per category without an Excel step |
| 10 | Implementation, Arabic support and total cost | 5 | Duration, who implements, and cost over three years |
The result is out of 100. Any system that scores below 3 on criterion 1 or 2 is not fit for a chain, however high its total.
Disclosure: this guide is published by HAL, and HAL ERP is one of the systems listed. Each description is taken from the vendor's own website as it appeared on 3 November 2026; we do not quote prices or ratings the vendor does not publish. Apply the scorecard to every system, HAL included.
| System | What its website says | Usually suits |
|---|---|---|
| HAL ERP with HAL POSsible | A till that is part of HAL ERP and keeps selling offline; each outlet has its own prices and counters; each sale moves stock out of the right store and posts to accounts; stock, purchasing and accounting in one system | Saudi chains that want till, stock, accounts and HR in one bilingual system |
| LS Central (LS Retail) | POS and retail management on one platform, with inventory, automated replenishment and financials; the POS runs offline | Large and multi-country chains that want a specialist retail system, usually through an implementation partner |
| Odoo | Open-source apps including POS, inventory and accounting; supports expiry dates for products tracked by lot | Businesses that want a flexible system built app by app with an implementation partner |

The kit turns this guide into tools you can use tomorrow:
The problem in the example is not the till, the warehouse or accounts. It is that they are three systems. HAL Retail is HAL's solution for retail: it monitors stock across outlets to improve replenishment, manages price lists, promotions and coupons per store, and integrates with payment terminals and platforms such as Tabby, Tamara and Salla. The point of sale, HAL POSsible, is part of HAL ERP: each sale moves stock out of the right store and posts to your books, the counter keeps selling offline and syncs when it reconnects, each counter closes by reconciling cash, card and wallets, and it issues invoices that meet ZATCA Phase 2. HAL's inventory module handles moves between locations, lots, cycle counting and barcodes. Al Homaidhi Group runs more than 80 stores on HAL Retail.
Measure your shrinkage with the free kit first, then see HAL on your own branch scenarios.
There is no single best system for every chain. The best one for you posts till sales to stock and accounts immediately, runs central replenishment and branch transfers, controls expiry, counts and cash-up, and issues simplified invoices under Phase 2. Score each system on ten weighted criteria after you have seen it work on your own branch scenarios.
A POS records the sale and issues the invoice. An ERP takes that sale, deducts it from the branch's stock, posts it to the accounts, builds replenishment from it and consolidates every branch's reports. A single shop may only need a POS; a chain needs both, linked.
Each month, add three lines per branch at cost: stock written off for expiry or damage, unexplained count variances, and price and promotion errors at the till. Divide the total by sales. In the six-branch example, shrinkage was SAR 114,000 a month, or 2.11% of sales.
Fast-moving and high-value items weekly, the rest monthly on rotation, with a full count once or twice a year. Record a reason from a fixed list for every variance so it can be tracked per branch.
In Phase 2, the simplified invoice is given to the buyer immediately and reported to the FATOORA platform within 24 hours of issue, according to ZATCA's E-Invoicing Detailed Guideline. Standard B2B tax invoices are cleared by the platform before they are shared.
Yes. The kit (a PDF guide and an Excel workbook) is free. Enter your name and email in the form above and it will arrive in your inbox.