Logistics UAE Localisation Pack
Seeded UAE master data, free zones, sea ports, airports, customs offices, charge codes, for the logistics engine.
Why this module
Logistics UAE Localisation Pack
Master data, ready on install
Fourteen free zones, nine sea ports, seven airports, and eight customs offices are seeded as real records with stable codes, UN/LOCODE and IATA references, and emirate scoping. No spreadsheet import, no manual keying before the first job.
Built for the UAE picture
Free zones carry regulator names and bonded flags, ports flag container, bulk, and cruise terminals, customs offices distinguish the federal authority from the seven emirate offices with a parent link. The structure mirrors how UAE movements actually work.
Yours to keep
LGPL-3 source on disk. No activation key, no phone-home, no recurring licence. Every seeded record is editable, extendable, and deactivatable. Free today, free at renewal, because there is no renewal.
Day in the life
A Dubai forwarder sets up a free-zone import job.
An operator opens a new job for cargo moving from Jebel Ali into JAFZA. The free zone is already in the master, picked by its code, flagged as a bonded zone so the team knows a customs movement is in play. The discharge port resolves to Jebel Ali by its UN/LOCODE, AEJEA, and the broker of record points at Dubai Customs, an emirate office that the master already links up to the Federal Customs Authority. When the invoice is costed, the UAE charge codes, Mirsal stamp duty, Free Zone inspection, Knowledge and Innovation Dirham, are present in the shared charge catalogue alongside the universal seeds, so the right disbursement lines are one selection away. None of this reference data had to be typed in. The pack put it there at install.
Edge cases
The cases most modules quietly ignore.
In the shipped code today, each one a place where a cheaper module silently does the wrong thing.
Customs offices model the real two-tier structure: the Federal Customs Authority is computed as federal from its emirate code, and each of the seven emirate offices can carry a parent-authority link up to it, with ondelete restrict so the federal record cannot be deleted out from under its children.
Every free zone carries an is_bonded flag defaulting to true, the signal that cargo entering or leaving the zone needs a customs movement declaration. The flag is data, so a non-bonded zone can be modelled without code changes.
Free-zone codes, UN/LOCODEs, IATA codes, and customs-office codes each carry a database unique constraint. A duplicate JAFZA or a second AEJEA is rejected at the database level, not just in the form, so imports and merges cannot silently fork a reference record.
Airports carry a cargo_capable flag so a passenger-only field can be excluded from air-freight pickers rather than offered as a valid origin. The IATA picker shows what can actually carry freight.
UAE charge codes are appended to the shared eh.log.charge.code catalogue with module-namespaced XML IDs, so the country seeds sit beside the universal ones without colliding, and uninstalling the pack does not take the shared catalogue with it.
What is inside
Built to do the job, end to end.
- Free zone master. eh.log.l10n.ae.free.zone seeded with fourteen zones across the emirates (JAFZA, DAFZA, DMCC, DWC, DSO, KEZAD, ADGM, MASDAR, SAIF, HFZA, RAKEZ, FFZA, AFZA, UAQFTZ), each with a stable code, emirate, regulator name, website, and a bonded-zone flag.
- Sea ports with UN/LOCODE. eh.log.l10n.ae.port seeded with nine ports (Jebel Ali AEJEA, Khalifa AEKHL, Abu Dhabi AEAUH, and more) carrying UN/LOCODE, operator name, and container, bulk, and cruise terminal flags.
- Airports with IATA and ICAO. eh.log.l10n.ae.airport seeded with seven airports (DXB, DWC, AUH, SHJ, RKT, AAN, FJR) with IATA codes, optional ICAO codes, emirate, and a cargo-capable flag for air-freight pickers.
- Customs offices. eh.log.l10n.ae.customs.office seeded with the Federal Customs Authority plus the seven emirate offices, with federal detection, a parent-authority link, single-window URL, and helpline fields for broker-of-record assignment.
- UAE charge codes. Five country-specific charges (Mirsal stamp duty, Free Zone inspection, Knowledge Dirham, Innovation Dirham, Dubai Trade service fee) appended to the shared charge catalogue with correct category, direction, and disbursement flags.
- Maintenance views and access. List and form views with a UAE menu for every master, plus two-tier security: logistics users get read access and managers get full create, write, and unlink, sourced from the engine groups.
Honest about the edges
What this does not do, so nothing surprises you.
- This is a master-data and configuration pack. It seeds reference records and charge codes but adds no shipment, costing, tracking, or declaration logic of its own, that logic lives in the logistics engine (eh_log_base) this pack extends and depends on.
- The Mirsal 2 adapter and Dubai Trade single-window integration are not in this module. They ship in the separate UAE customs adapter add-on, which is intended to install when both this pack and the customs engine are present.
- This pack does not seed UAE customs declaration types. Declaration-type configuration is handled by the customs engine and its UAE adapter, not here.
- VAT and e-invoicing are not duplicated here. They are consumed from the standard Odoo localisation and accounting modules.
- Seeded records are a practical starting set, not an exhaustive registry of every UAE zone, port, terminal, or office. Records are editable and extendable, so operators can add or deactivate entries to match their own network.
UAE logistics Odoo 19, United Arab Emirates freight forwarding, Dubai customs Odoo, JAFZA free zone master data, DMCC RAKEZ free zone, Jebel Ali port UN/LOCODE, Khalifa Port Abu Dhabi, DXB AUH air cargo IATA, Federal Customs Authority UAE, Mirsal charge codes, UAE customs office broker, Odoo 19 Community logistics localisation
Languages
Available in 19 languages
The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.
Please log in to comment on this module