Who we are

About IT Horizon

A boutique technology house engineering enterprise systems with the precision of a luxury maison.

Our story
Odoo Partner

Comprehensive Odoo

End-to-end Odoo 20 Enterprise, implemented, customized, integrated and supported by our own senior team.

Become a client
Odoo apps

Every app, configured for the Gulf

Finance, sales, supply chain, HR, marketing and services apps implemented with the local tax, payroll and language rules each country needs.

All Odoo apps
What we do

Beyond ERP

Strategy, product engineering and customer-experience work that turns systems into advantage.

Talk to us
Sectors

Industry depth

Domain fluency across the sectors that define the GCC economy, and the regulations behind them.

Discuss your sector
Learn · grow · succeed

Insights

Real-world ideas, case studies and sessions to help your business work smarter with Odoo.

Browse the blog
Contact usالعربيةBook a consultation
Home/Blog/Odoo 20 · Comparison
Odoo 20 · Comparison · 8 min read

Odoo 19 vs Odoo 20: what changes for trading and retail companies

Odoo 20 came out in September 2026, a year after Odoo 19. This comparison is for owners and finance managers of trading, distribution and retail companies in Kuwait and the Gulf: what is different in the apps they use every day, what changes under the hood, and when moving makes sense.

For a trading or retail company, Odoo 20 changes four things that matter: inventory valuation now lives in Accounting, the warehouse and Barcode apps gained tools for reordering, returns, lots and packages, Point of Sale can take several currencies and closes sessions with a single sales entry, and the access rights system behind every custom module was rebuilt. Odoo 19 stays supported until September 2028, so there is time. New implementations should start on Odoo 20. Companies already on 19 can plan the move for a quiet month, after testing, and companies on 17 or older should plan it now.

Everything below comes from Odoo’s own Odoo 20 release notes, the Odoo documentation for version 20 and, for the technical changes, the Odoo 20 source code.

Support dates for Odoo 18, 19 and 20

VersionReleasedEnd of standard support
Odoo 18October 2024September 2027 (planned)
Odoo 19September 2025September 2028 (planned)
Odoo 20September 2026September 2029 (planned)

Standard support covers three years and includes security updates. Odoo 17 left standard support in September 2026: from then on it gets extended support only, for an extra fee, on Odoo.sh or your own servers, and no more security updates. On Odoo Online, a database on a major version must be upgraded every two years.

Accounting and inventory valuation

In Odoo 19 the valuation settings came with the stock_account module. In Odoo 20 they sit in Accounting → Configuration → Settings, and valuation is part of Accounting itself. We wrote a short guide on where the valuation settings are in Odoo 20. Other changes a finance team will notice:

  • Cost corrections flow back. When a product’s cost changes after it was delivered, for example through a landed cost or a bill at a different price, Odoo 20 updates the delivery’s value retroactively, and the cost of goods sold too under perpetual valuation.
  • Valuation Adjustments. Cost adjustments and their effect on stock value are listed in a new menu, visible in debug mode. Under perpetual valuation the journal entries are created automatically.
  • Accruals from the closing report. Under perpetual valuation, Bills To Receive, Billed Not Received, Invoices To Be Issued and Invoiced Not Delivered can be booked from the inventory valuation closing report.
  • Parent accounts. Account groups are replaced by parent accounts for structuring the chart of accounts, and account codes become optional.
  • Payment statuses renamed. In Process becomes Paid, and Paid becomes Reconciled. Entries that touch a bank account must now come from bank transactions.
  • Tax included or excluded. Sales orders, purchase orders and invoices can switch between prices with and without tax.

Warehouse and the Barcode app

New in Odoo 20Why a trader cares
Suggested minimum and maximum on reordering rules, from demand history, days of coverage and order frequencyReplenishment levels for hundreds of items without setting each one by hand
One Order button in the replenishment screen, ordering the maximum minus the forecastFewer clicks for the buyer and one rule to explain
Landed costs on individual products of a transferFreight and customs for one item in a mixed container
Routes between companies, deliveries from another company’s warehouse, cost carried acrossGroups with a trading company and a retail company
Stock at a past date to the minute, and a stock aging reportMonth-end checks and slow-moving stock reviews
A simpler returns flow, without the old return wizardCustomer returns at the counter and in the warehouse
Vendor reference on receipts, HS codes and packagings per variantReceiving staff find the order; customs codes are right per variant
ZPL labels for locations, and network ZPL printersShelf labels and product labels printed from Odoo

The network printers are new in Odoo 20: Inventory has a Manage Printers menu for ZPL printers addressed by IP. Our guide to printing Zebra labels from Odoo 20 covers the setup. The Barcode app adds a choice on backorders, suggested batches when one vendor has several receipts due, lot and serial numbers generated in bulk, manual entry of a lot when the label cannot be scanned, packages pre-encoded with the vendor’s contents, and light users who can open the Barcode app only.

Point of Sale

  • Several currencies at checkout in the same point of sale.
  • End of session. Closing a session creates one global sale, which removes the miscellaneous entries, and payment entries can be posted at a set time without closing the session.
  • Simplified stock. Point of Sale can run without the Inventory app, with one on-hand quantity per product.
  • Printers. Several printers per point of sale, label printers over a USB proxy, and receipt paper size set in developer mode.
  • Daily work. A warning when a cashier picks an expired product, products snoozed for a while, order search by invoice or receipt number, and simplified receipts that show totals and taxes only.

Sales and purchase

Sales gets price rules per packaging type, pricelist rules for set periods or days of the week, margins you can edit on the order line, numbered order lines, a sales dashboard above the quotations list, and order lines with a description and no product unless the Mandatory Product setting is on. Purchase gets a default Incoterm per vendor, an expected arrival date you can change while keeping the vendor’s original date, the cost per product unit shown beside the cost per purchase unit, and a vendor quality rate from quality checks.

Kuwait and the GCC in Odoo 20

  • Kuwait payroll. The release notes list a new base payroll localization for Kuwait: regular pay, social insurance, end-of-service and provisions, and leave setup. Odoo’s payroll documentation has no Kuwait page yet, so test it against your own payroll, PIFSS for Kuwaiti staff and the bank salary file, before relying on it.
  • Kuwait accounting. State names and codes follow ISO 3166-2. Kuwait has no VAT, so nothing changes on Kuwaiti tax.
  • Saudi Arabia. ZATCA submission moved into the Send wizard, with batch sending from the list, invoice and transaction types set on the invoice, and the Saudi Central Bank added as an exchange rate source.
  • UAE and Oman. A new UAE chart of accounts with 6-digit codes, the FTA audit file from the general ledger, and payroll changes; Oman gets a base payroll localization with WPS files.

Under the hood: custom modules need work

The biggest technical change is security. Odoo 19 had access rights (ir.model.access) and record rules (ir.rule). Odoo 20 replaces both with one model, ir.access, where an access line can carry a domain. Standard modules now ship security/ir.access.csv instead of ir.model.access.csv. Tracking values are no longer stored by default, Odoo’s own screens use Material Symbols icons, and push notifications no longer go through Firebase. A custom module with its own access rights will not install on Odoo 20 until they are rewritten, so list your modules early. Our Odoo 20 upgrade checklist goes through the steps.

When to move to Odoo 20

Your situationWhat we suggest
Starting a new implementationStart on Odoo 20
On Odoo 19 with few custom modulesRequest a test upgrade now and move in a quiet month
On Odoo 19 with many custom modulesPort the modules first; Odoo 19 is supported until September 2028
On Odoo 17 or olderPlan the upgrade now; you can go straight to Odoo 20

We upgrade Odoo databases for companies in Kuwait and the Gulf: a test upgrade on a copy of your data, custom modules ported or replaced by new standard features, reconciliation of balances and stock, then one cut-over. See our Odoo migration and upgrade service.

What to do next

  1. Write down your Odoo version, hosting (Odoo Online, Odoo.sh or your own server) and the custom modules installed.
  2. Mark which of the Odoo 20 changes above would replace a custom module or a manual step in your company.
  3. Book a consultation to plan the test upgrade and the cut-over date.
FAQ

Common questions

Odoo 20 was released in September 2026. Standard support is planned until September 2029, on Odoo Online, Odoo.sh and on-premise.

Odoo 19 is in standard support until September 2028 (planned), with security updates and bug fixes until then.

Not without changes. Odoo 20 replaced access rights and record rules with one model, ir.access, so at least the security files of every custom module must be rewritten, and code that relies on tracking values or the old valuation settings must be checked.

Odoo’s Odoo 20 release notes list a base payroll localization for Kuwait with regular pay, social insurance, end-of-service, provisions and leave setup. Test it with your own payroll rules on a copy of your database before you use it for real salaries.

With an Odoo Enterprise subscription, upgrading standard apps and Studio customizations is included. Custom modules from partners or your own team are not covered unless they are under a maintenance of customizations subscription.

Need help with your Odoo project?

Tell us what you are working on. A senior consultant will reply with how we would approach it.

Phone
+965 5015 3388
WhatsApp
Message us
Email
[email protected]
Office
Salem Al Mubarak Street, Salmiya, Kuwait
Hours
Sunday to Thursday, 8:00 to 19:00