Logistics KSA Localisation Pack
Saudi Arabia master data for the logistics engine: ports, airports, economic zones, customs offices, charge codes, seeded and ready on install.
Why this module
Logistics KSA Localisation Pack
Reference data, already seeded
Nine KSA sea ports, eight airports, eight economic and free zones, seven customs offices, and five country charge codes load the moment you install. No spreadsheets to import, no codes to look up. Open the menus and the masters are populated.
Real codes, not placeholders
Ports carry genuine UN/LOCODE keys (SAJED, SADMM, SAJUB). Airports carry IATA and ICAO codes. Each key is uniqueness-constrained at the database level, so duplicates cannot creep in as your operators extend the lists.
Built on the shared engine
Charge codes append to the same eh.log.charge.code catalogue the rest of the suite reads, with real category, direction, and mode values. This pack is data and config, so it stays small, stable, and easy to reason about.
Day in the life
What it actually does
You install the logistics engine, then install this pack. Four new reference menus appear under the logistics configuration: KSA economic zones, sea ports, airports, and customs offices, each pre-filled with the real entries. Jeddah Islamic Port arrives with UN/LOCODE SAJED and a container-terminal flag, King Khalid International (Riyadh) with IATA RUH and cargo-capable set. The customs register is hierarchical: ZATCA sits at the top, Saudi Customs reports to it, and the Jeddah and Dammam customs houses and the Riyadh and Jeddah airport customs houses report to Saudi Customs. SASO is registered as the conformity authority for SABER. Five KSA charge codes (FASAH service fee, SABER conformity fee, ZATCA declaration stamp, Mawani port levy, SABER PCOC) join the shared charge catalogue so quotations and cost sheets in the rest of the suite can reference them. Logistics users get read access to every master; logistics managers can extend and edit. That is the whole job: give a KSA operator correct, query-ready reference data instead of a blank set of tables.
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.
UN/LOCODE, IATA code, economic-zone code, and customs-office code each carry a database UNIQUE constraint, so an operator adding a new port or airport cannot silently duplicate an existing key.
The customs office model is self-referential through parent_authority_id with ondelete restrict. Saudi Customs points to ZATCA, the port and airport customs houses point to Saudi Customs, and a parent cannot be deleted while children reference it.
is_federal is computed and stored from the region selection (FED), not hand-entered, so the federal authorities (ZATCA, Saudi Customs, SASO) always sort and filter to the top without manual upkeep.
Economic zones carry an explicit is_bonded flag. KAEC, KAIA Free Zone, NEOM, and the Riyadh Integrated Special Logistics Zone are seeded bonded; ordinary industrial cities are not, so downstream logic can distinguish them.
All seeded records load with noupdate, so a module upgrade will not overwrite an operator's local edits to a port, airport, zone, or customs office record.
Logistics users get read-only access to all four masters; only logistics managers can create, edit, or archive, which keeps the reference data stable for day-to-day operators.
What is inside
Built to do the job, end to end.
- Sea ports master. Nine KSA ports seeded with UN/LOCODE keys: Jeddah Islamic, King Abdulaziz Dammam, King Fahd Industrial and Commercial Jubail, Yanbu Commercial and Industrial, Jazan, Ras Al-Khair, and Duba. Each carries region plus container, bulk, and petrochemical terminal flags.
- Airports master. Eight airports with IATA and optional ICAO codes and a cargo-capable flag: Riyadh (RUH), Jeddah (JED), Dammam (DMM), Madinah (MED), Abha (AHB), Jazan (GIZ), Tabuk (TUU), and NEOM Bay (NUM).
- Economic and free zones. Eight zones classified as special economic, free zone, industrial city, or logistics hub: KAEC, KAIA Free Zone, NEOM, Jazan Economic City, Jubail and Yanbu Industrial Cities, the Riyadh Integrated Special Logistics Zone, and the MODON network, each with regulator name and bonded flag.
- Customs office register. Seven entries in a parent-child tree: ZATCA, Saudi Customs, SASO conformity authority, the Jeddah and Dammam port customs houses, and the Riyadh and Jeddah airport customs houses, with office-kind classification, single-window URLs, and a computed federal flag.
- KSA charge codes. Five country charges appended to the shared eh.log.charge.code catalogue with real category, direction, and mode values: FASAH service fee, SABER conformity fee, ZATCA declaration stamp, Mawani port operator levy, and SABER product certificate of conformity.
- Access and views. List and form views and a configuration menu for every master, plus an ir.model.access matrix granting logistics users read and logistics managers full create, write, and unlink, all on top of the eh_log_base groups.
Honest about the edges
What this does not do, so nothing surprises you.
- This is a master-data and configuration pack only. It seeds reference records and charge codes; it does not add shipments, quotations, customs declarations, tracking events, or EDI of its own. Those live in the logistics engine and its operational add-ons.
- There is no FASAH integration in this module. The FASAH single-window adapter ships separately in eh_log_l10n_sa_customs, which auto-installs only when both this pack and eh_log_customs are present.
- There is no SABER conformity integration here. The SABER adapter is a separate planned add-on; this pack only seeds the SASO authority record and the related charge codes.
- ZATCA e-invoicing is not implemented or duplicated here. It is consumed from standard Odoo invoicing modules.
- Requires eh_log_base. Installing this pack alone, without the logistics engine, gives you reference tables but no operational workflow to consume them.
- Seeded lists are a practical starting set, not an exhaustive national registry of every port, airfield, or industrial site. Managers extend the masters as needed; uniqueness constraints keep new entries clean.
Odoo 19 Saudi Arabia logistics, KSA freight forwarding Odoo, Saudi customs office register, Jeddah Dammam Jubail ports Odoo, UN/LOCODE port master KSA, FASAH SABER ZATCA reference data, NEOM KAEC bonded economic zone, Saudi airports IATA cargo Odoo, logistics localisation pack Odoo Community, ERP Heritage logistics suite
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