Odoo 20 Upgrade in Jordan: A Step-by-Step Plan for Companies
A practical Odoo 20 upgrade plan for companies in Jordan: when to move, how Odoo's test-then-production process works, what happens to custom modules, which changes to test, and the JoFotara checks to run after go-live.
Published 2026-10-06 · METCH
Odoo 20 upgrade in Jordan: now or later?
Odoo 20 was released in September 2026, and for most Jordanian companies the question is timing. Even when Odoo Online offers a direct upgrade button, Odoo recommends testing on a copy of your database first and touching production only after your team signs off.
Each major version gets three years of standard support. Extended support after that costs extra and is offered only on-premise and, for a limited number of versions, on Odoo.sh. You can jump from any version straight to any major version still under standard support. Use these criteria:
- On 17.0 or older: standard support for 17.0 ended in September 2026 (16.0 in September 2025), so start now.
- On Odoo Online: a major version must be upgraded every two years, and Odoo upgrades the database automatically if you miss the deadline.
- On 18.0 or 19.0: both are under standard support, so schedule an assessment rather than a rush, unless your Odoo Online database shows an upgrade deadline.
- Heavy custom code: assess early, because custom modules can hold the whole upgrade back.
- Planning to use AI agents: budget for IAP credits.
For JoFotara users, the improved credit-note sync and the Transit, Foreign Trade and Free Zone Transfer invoice types also reach back to 17.0, and compliant Point of Sale receipts to 18.0, so e-invoicing alone may not force the move. What only Odoo 20 brings: supplier country and tax-number checks before sending, errors handled in the Send wizard with JoFotara fields grouped under Other Info, and multiple submission scenarios for invoices and receipts.
Odoo's official route: a test database first, then production
Odoo's documented sequence is short: request an upgraded test database, upgrade the code of any custom modules, test thoroughly, report issues through Odoo's Support page, plan the go-live, request the production upgrade, then report anything that surfaces afterwards. On Odoo Online, the request starts in the database manager under Manage, then Upgrade, with the purpose set to Test. Odoo.sh runs it on a staging branch. On-premise servers use Odoo's upgrade script, which must reach Odoo's servers on TCP 443 and on random ports between 32768 and 60999, so a strict company firewall may need an exception.
Test copies are neutralized: scheduled actions, outgoing mail and bank synchronization are disabled, and payment providers and delivery carriers switch to test mode. Use the copy to check views, printed invoices and sales orders, record creation, mail templates, saved Arabic and English translations, search filters and exports. Read the upgrade report Odoo posts in Discuss for administrators, request fresh copies as you go, and rehearse in full the day before go-live.
Production is unavailable while it upgrades, so pick a quiet window. On Odoo Online, it is impossible to revert to the previous version once the process completes.
One Jordanian detail: Odoo's Jordan e-invoicing module replaces the JoFotara Secret Key and Client ID with dummy values on neutralized copies, so sending to JoFotara from the copy fails by design. Leave those placeholders alone, never paste real credentials into the copy, and use it to check invoice content, taxes and layout; the live JoFotara check comes after go-live.
Custom modules, partner modules and Studio: what the upgrade covers
With Odoo Enterprise, upgrading to the latest version is free, including support to fix discrepancies in the upgraded database. The service covers:
- all standard apps
- Studio customizations, as long as Studio is installed and the subscription is active
- developments under a maintenance-of-customizations subscription
It does not cover cleaning existing data and configuration, training, or in-house and third-party modules without a maintenance contract, including ones written by Odoo partners. That gap matters most: a database with custom modules cannot be upgraded until those modules exist for the target version, and fixing them falls to whoever maintains them. Under Odoo's Enterprise agreement, the customer validates the upgraded database and may submit several upgrade requests until the result is acceptable.
Odoo advises freezing development and challenging each custom feature against the new standard; a feature built years ago may now be a standard setting. Then make the modules install on an empty Odoo 20 database, then on your upgraded copy, and rehearse. The Odoo 20 changes most likely to break code:
- record rules removed in favour of a domain on each access right
- Font Awesome icons replaced by Material Symbols
- stored tracking values removed
- Field Service worksheets using property fields instead of Studio fields
- more readable technical names for Studio fields
- push notifications moved from Firebase to Odoo's own service
In Jordan, compare custom JoFotara code, such as a pre-send supplier check or a home-made error screen, with Odoo 20's built-in supplier checks and Send-wizard error handling, and retire what is now standard.
Before-you-upgrade checklist: what to test on the copy
Our Odoo 20 overview page lists 15 changes to review before upgrading. These touch most Jordanian companies:
- Parent accounts: account groups become parent accounts and codes turn optional. Confirm the chart of accounts and management reports still roll up.
- Payment statuses: "In Process" becomes "Paid" and "Paid" becomes "Reconciled"; "Mark as Reconciled" moves to the action menu. Update guides, filters and reports.
- Bank rule: every entry hitting a bank account must come from a bank transaction, so manual bank entries need a new routine.
- Taxes in fiscal positions: a default tax outside the invoice's fiscal position is removed, even with no replacement.
- Depreciation models replace asset models, and setup moves onto the asset accounts. Review fixed assets.
- Field Service is discontinued; technicians move into Planning, with a live map, routing, travel fees and worksheets.
- Work entries and the Planning–Payroll link are removed; work entry types merge with time-off types.
- The return wizard is gone, so warehouse staff learn a simpler returns flow.
- AI features now consume IAP credits.
Two Jordanian checks deserve extra time. Odoo's Jordan localization uses fiscal positions to adjust taxes by customer or supplier registration status, and JoFotara expects exactly one percentage tax on every invoice line when the company is registered for sales tax. Run export, exempt and 16% general sales tax invoices on the copy and look for lines left without tax. And since Odoo's Jordan payroll covers social security and income tax, compare test payslips with production before signing off.
After go-live: JoFotara checks and team training
Once production runs on Odoo 20, do a short JoFotara check before invoicing at full speed:
- Confirm the Jordan E-Invoicing module (l10n_jo_edi) is installed. Odoo's Jordan documentation notes that modules may not install automatically after an upgrade; if the Electronic Invoicing (Jordan) section is missing from Accounting settings, install it.
- Check that the Activity Number, JoFotara Secret Key, JoFotara Client ID and Taxpayer type are still filled in.
- Confirm the company currency is JOD, the country is Jordan and the company name matches the Income and Sales Tax Department registration.
- Watch the first genuine invoice and the first genuine credit note go through the Send wizard and confirm the JoFotara QR code appears on each PDF; the Sanad app can validate it. Do not create dummy test documents, since everything sent is submitted to the department's system.
- Add the JoFotara State and JoFotara Error columns to the invoice list.
- If you sell through Point of Sale, confirm the Jordan POS e-invoicing module (l10n_jo_edi_pos) is installed and watch the first real receipts and refunds.
- Keep discounts as a percentage per line, since JoFotara rejects negative lines.
Training comes next, and Odoo's upgrade service does not include it. Walk users through the renamed payment statuses, the new returns flow, Planning for technicians, bank reconciliation under the new bank rule and how AI credits are spent, then update internal guides and report templates.
If you would like a certified Odoo partner to review your upgrade plan, METCH offers a free consultation to companies in Jordan.
Frequently asked questions
Is upgrading to Odoo 20 free?
With Odoo Enterprise, the upgrade itself is free and covers standard apps, Studio customizations while Studio is installed and the subscription is active, and developments under a maintenance-of-customizations subscription. Unmaintained custom or partner modules, data clean-up and training are not included. Your own effort depends on the version gap, hosting type, number of apps, custom and partner modules, integrations such as JoFotara and bank feeds, data clean-up, number of companies, test cycles and users to train.
Can we go straight from Odoo 16 or 17 to Odoo 20?
Yes. Odoo allows an upgrade from any version directly to any major version still under standard support, which includes Odoo 20. Odoo also notes that a smaller version gap usually makes the upgrade easier, so a jump from 16.0 calls for more testing. Standard support for 17.0 ended in September 2026, and for 16.0 in September 2025.
Will JoFotara e-invoicing keep working after the upgrade?
Verify it rather than assume it. On the test copy, Odoo replaces the JoFotara Secret Key and Client ID with dummy values, so live sending is blocked there; leave it that way and check invoice content and taxes. After go-live, confirm the Jordan E-Invoicing module is installed, the credentials and taxpayer type are present, and your first real invoice and credit note come back with a QR code. The credit-note sync improvement and the extra invoice types reach back to 17.0; Odoo 20 adds supplier checks, error handling in the Send wizard and multiple submission scenarios for invoices and POS receipts.
How should we budget for AI credits after moving to Odoo 20?
All AI features in Odoo 20 consume credits bought through Odoo's in-app purchase (IAP) service, and each IAP service has its own prepaid credits. Budget for credits if your team will use AI agents or the website or shop assistant. Enterprise users with a valid subscription get free credits to try IAP features, and the new My Subscription page shows the IAP services on your database in one place.
Need help with this?
METCH is a certified Odoo partner serving Jordan — book a free consultation.
Get a proposal