A trading company in Kuwait runs Odoo on four apps, Purchase, Inventory, Sales and Accounting, and adds Point of Sale where it has showrooms, cash counters or vans. Together they cover the trading cycle: an import order to a supplier abroad, freight and customs added to the cost of the goods, a price list for each customer group, a credit limit per customer, and margin on the full cost. Almost all of this is standard Odoo configuration; custom work in trading projects is mostly reports, approval rules and links to other systems.
The Odoo apps a trading company needs
- Purchase: requests for quotation, purchase orders in the supplier’s currency, vendor price lists and lead times, and vendor bills checked against receipts.
- Inventory: warehouses and locations, receipts and deliveries, lots and expiry dates, reordering rules and landed costs.
- Sales: quotations from the customer’s price list, delivery from the right warehouse, invoices for what was delivered.
- Accounting: invoices, payments, customer statements, bank reconciliation and margin reports, in Kuwaiti dinars to three decimals.
- Point of Sale: showrooms, cash counters and van sales, on the same stock and price lists.
Barcode, Quality and Studio are added when the warehouse scans, when goods are inspected on arrival, or when a screen needs an extra field. Our trading and distribution page shows how we set these apps up.
Import purchase orders and landed costs
An import starts as a purchase order in the supplier’s currency, often US dollars, euros or Chinese yuan. Odoo keeps the order and the bill in that currency, converts them to dinars at the day’s rate, and posts the exchange difference when the bill is paid.
Freight, insurance, customs duty and the clearing agent’s fees arrive on separate bills, often weeks after the goods. In Odoo each charge is a service product marked Is a Landed Cost. When the bill comes in, the accountant clicks Create Landed Costs, selects the receipt it belongs to, and Odoo splits the charge over that receipt’s products: equally, by quantity, by current cost, by weight or by volume. Stock value rises by each product’s share, so later sales show margin on the full cost.
Purchase orders above an amount you set can go to a manager for approval, and vendor bills can be controlled against received quantities, so a supplier is only paid for what arrived. More on Odoo Purchase.
Price lists, credit limits and van sales
Most distributors sell one product at several prices: wholesale, retail, the cooperative societies, a key account. In Odoo each is a price list. A rule sets a fixed price, a discount on the sales price or a formula on cost, with a minimum quantity and a validity period, in dinars or another currency. Each customer has a default price list, so the quotation starts from that customer’s prices.
Credit limits are a setting in Accounting. Each customer gets a limit, and Odoo shows a warning on the quotation and the invoice when the open balance plus the new order goes over it. Standard Odoo warns but does not stop the order; companies that want orders held until finance releases them use an approval step, which our ITH Suite modules provide as a credit hold.
Odoo has no separate van sales app. The usual setup makes each van a stock location: the morning load is an internal transfer, and the salesman sells from Point of Sale on a tablet or phone, which keeps working when the signal drops. Credit customers are charged to their customer account. In the evening unsold stock goes back by transfer and the cash is counted at the session close, so stock and cash are checked per van every day.
Several warehouses, lots and expiry dates
Each warehouse, showroom or branch is set up as a warehouse in Odoo, with locations down to the shelf, and stock moves between them by transfer. Reordering rules create a purchase order, or a transfer from the main warehouse, when stock falls under a minimum.
Food, cosmetics and pharma distributors switch on Lots & Serial Numbers and Expiration Dates in the Inventory settings. Each lot then carries its expiry date and a removal date some days before it, and the FEFO removal strategy (first expired, first out) sends pickers to the lot that expires first. When a supplier recalls a batch, the lot’s traceability shows which customers received it. More on Odoo Inventory.
Arabic invoices and a group of companies
Odoo’s Kuwait accounting package installs the Gulf invoice layout, which prints Arabic next to English on invoices, credit notes and vendor bills. Product names can be kept in both languages, and each user works in Arabic or English, with right-to-left screens in Arabic.
Trading groups often run several companies, for example an importer, a retail company and a company in Saudi Arabia. They can share one Odoo database with separate accounts and stock. With Inter-Company Transactions on, a purchase order from one company creates the matching sales order in the other, and an invoice creates the matching vendor bill. Companies outside Kuwait keep their own VAT and e-invoicing rules.
Common trading problems and the Odoo setting that handles each
| Problem | Where it is handled in Odoo | What happens |
|---|---|---|
| Freight and customs booked as expenses, so margin looks better than it is | Inventory settings: Landed Costs | Each charge is split over its receipt and added to the stock cost |
| A salesperson quotes an old or wrong price | Sales: a price list on each customer, with validity dates | The quotation starts from that customer’s prices |
| A customer keeps buying with overdue invoices | Accounting settings: Sales Credit Limit | A warning on the quotation and the invoice once the limit is passed |
| Expired stock reaches a customer | Inventory settings: Lots & Serial Numbers, Expiration Dates; FEFO removal | Pickers are sent to the lot that expires first |
| A supplier is paid for goods that never arrived | Purchase settings: bill control on received quantities | The bill is checked against the receipt before payment |
| A branch runs out while the main warehouse has stock | Inventory: reordering rules with resupply from the main warehouse | A transfer is created when branch stock falls under its minimum |
| Sales between group companies are invoiced twice or not at all | Settings, Companies: Inter-Company Transactions | The other company’s order or bill is created automatically |
| Van stock and cash do not match at the end of the day | Point of Sale: one shop per van, with its own stock location | The session closes with a cash count and stock returned by transfer |
None of these needs custom development. Each needs the setting switched on, the master data filled in (costing method, price lists, limits, expiry periods) and a team trained to use it.
How this looks in Kuwait
- No VAT. Kuwait has no VAT as of October 2026, so local invoices carry no tax lines, and customs duty paid on imports goes into landed costs.
- Three decimals. Prices, invoices and bank transfers are in Kuwaiti dinars to the fils, and Odoo keeps three decimals on the dinar.
- Cooperative societies and key accounts. Each gets its own price list and its own statement, matched against its payments.
- Arabic and English. Invoices and credit notes in both languages, with delivery notes and statements set up to match.
What IT Horizon does for trading companies
We start with workshops on how you buy, import, price, store and sell today, then write a fixed scope: apps, settings, reports and any custom modules. We configure Odoo on a copy of your data, your team tests it with real orders, and at cut-over we load opening stock, open orders and customer balances, going live only when record counts and balances match. After go-live we support your team through the first weeks, then under a support agreement.
Where standard Odoo stops, our ITH Suite modules add the controls larger distributors ask for: credit holds, delivery and billing blocks, rebates and batch management. We are an Odoo partner in Salmiya with 10+ years of Odoo work and 50+ clients across the GCC. How we run an Odoo implementation.
What to do next
- Write down the problems that cost you most today: margin you cannot trust, stock that does not match, overdue customers, expired goods, a slow month-end close.
- Collect one real example of each: an import with its freight and customs bills, a customer price list, an overdue customer’s statement.
- Book a consultation and bring them. A consultant goes through how Odoo would handle each one and what the scope would include.