Odoo Point of Sale runs a shop counter in Kuwait from a browser on a tablet or PC, takes KNET and card payments on the terminal your bank supplies, and prints receipts with Arabic next to English. Each branch is its own warehouse, so every sale reduces that branch’s stock, and closing the register posts the day to Accounting. The parts that need care are the KNET terminal, the receipt layout and how branches are restocked.
KNET and card payments
KNET is Kuwait’s shared banking network for debit cards, set up with the local banks. In a shop, KNET cards are taken on a terminal from your bank, which settles the takings to your account. Odoo’s integrated terminals (Adyen, Stripe, Viva.com, Worldline and others) do not include the terminals Kuwaiti banks issue, so there are two ways to work with them.
- Integrated terminal. Where the bank offers an interface, the amount goes from the Odoo payment screen to the terminal and the approval returns to the order. This is a custom integration, built per bank.
- Standalone terminal. The cashier keys the amount into the terminal and selects the KNET payment method in Odoo. The session still totals KNET separately.
Set up one payment method for each way customers pay: cash, KNET, credit card, and customer account if you sell on credit. Give each card method its own bank journal, so a session’s KNET total can be matched to the KNET settlement on the bank statement.
Arabic receipts and what the Ministry of Commerce checks
Kuwait’s Consumer Protection Law No. 39 of 2014 requires the seller to give the consumer an invoice written at least in Arabic, showing the price and quantity of what was sold. Other languages may appear next to the Arabic, and the Ministry of Commerce and Industry, which enforces the law, has reminded shops that Arabic must be the main language of their invoices. Its inspectors check this.
In Odoo, the Gulf localization adds Arabic as a second language on POS receipts and on invoices, and the Kuwait accounting package installs it with the Kuwaiti chart of accounts. Three things still need a decision before go-live:
- Arabic names for every product, because the receipt prints what is in the product record.
- The header and footer: trade name, branch, phone and return policy, in both languages.
- Which language leads. The standard layout prints Arabic second; for Arabic first, the template is adjusted once for all branches.
Amounts are in Kuwaiti dinars with three decimals (fils), standard in Odoo. Kuwait has no VAT, so Kuwaiti registers carry no sales tax. A customer who needs a full invoice gets one from the same order, at the counter or by scanning the QR code on the receipt.
Branches, stock transfers and central purchasing
Each shop is its own warehouse and each register is linked to it, so a sale in the Salmiya branch reduces Salmiya’s stock only. The usual layout is a central warehouse that buys, and shops resupplied from it with inter-warehouse transfers.
- Central purchasing. Buyers order from head office into the central warehouse, so supplier prices, terms and bills stay in one place.
- Replenishment. Reordering rules set a minimum and maximum per product and branch. Below the minimum, Odoo proposes a transfer from the central warehouse.
- Transfers between branches. A shop that runs out can be supplied from another shop, and both managers see the transfer until it is received.
Stock counts are done in the Inventory app with a barcode scanner, and items tracked by lot or serial number, such as electronics or cosmetics with expiry dates, are tracked at the counter too. Retailers that also sell wholesale run both from the same stock; see trading and distribution.
Loyalty, gift cards and returns
Loyalty programs, coupons, promotions, gift cards and eWallet balances are part of Odoo Point of Sale. Rewards apply automatically or are added by the cashier, and a customer’s points sit on their contact record, the same in every branch.
Returns are processed from the original order or, without a receipt, as a standalone return. The refund goes back by the payment method you choose or as a gift card, and Odoo creates a credit note that references the original receipt. Cashiers log in with a PIN or badge, and their rights (minimal, basic or advanced) decide who may refund.
Selling when the internet drops
If the connection fails, the register switches to offline mode and keeps selling. Products and customers load into the browser when the session opens, orders are stored on the device, and they sync when the connection returns. Printers and scales on the shop network keep working.
Full invoices, new customers, live stock figures and integrated card terminals wait for the connection. A standalone KNET terminal with its own SIM keeps working, a good reason to keep one as a backup. Do not close or reload the browser while offline: the unsynced orders are in its cache.
What a day’s closing looks like
- The cashier opens Close Register: number of orders, total, and expected amount per payment method.
- The drawer is counted by coins and notes. Cash taken out during the day was already recorded with a reason through Cash In/Out.
- Any difference is shown. With a maximum difference set, the cashier cannot close beyond it without a manager.
- Closing posts the session to Accounting: sales, the takings of each payment method in its own journal, and any cash difference separately.
- The next morning, finance matches KNET and card totals to the bank settlement in Odoo Accounting, and the cash deposit to the bank statement.
Odoo recommends closing every register daily. The session report shows who opened the register and who handled each order, which is what an owner asks for when the cash is short.
Hardware
| Device | What works with Odoo | Note |
|---|---|---|
| Register | Tablet, PC or touch terminal with a current browser | Nothing to install on the device |
| Receipt printer | Epson ePOS on the network, or USB and ESC/POS printers through an IoT box | Odoo recommends Epson; Bluetooth printers do not work |
| Cash drawer | Connected to the receipt printer with an RJ25 cable | No separate connection to the register |
| Barcode scanner | USB or wireless scanner that ends each scan with Enter | Most scanners do this by default |
| Card terminal | KNET terminal from your bank, integrated or standalone | Integrated terminals need the internet |
Buy from a supplier who keeps spares in Kuwait. Keep a spare printer at head office: it costs less than a closed counter.
What to check before choosing a POS
- Which banks issue your KNET terminals, and whether each offers an integration.
- A sample Arabic and English receipt, printed on the printer you will use.
- How stock moves from the central warehouse to branches, and who approves a transfer.
- What happens offline, tested by unplugging the router during the demo.
- Who approves a cash difference, and how finance reconciles KNET settlements.
- Whether POS, stock, purchasing and accounting share one database.
How we set up Odoo Point of Sale
We are an Odoo partner in Salmiya. For a retail rollout we start with a workshop on how your branches sell, buy and close the day, then fix the scope in writing: branches, registers, payment methods, receipt layout and replenishment. We configure Odoo Point of Sale with Inventory and Accounting on a copy of your data, connect the KNET terminals your bank supports, and train cashiers in Arabic and English.
We usually open one branch first and roll out the others once its daily close and KNET reconciliation run without help. After go-live, branch questions go to our support team under an Odoo support agreement.
What to do next
- List your branches, the registers in each branch and the bank behind each KNET terminal.
- Collect one current receipt from each branch and the end-of-day report your finance team uses today.
- Book a consultation and we will run a test register with your products, in Arabic and English.