| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) • Purchase (purchase) • Sales (sale_management) |
| Community Apps Dependencies |
Show
•
Carrier Portal
• Cold Chain • Container Management • Customs Broker • Dangerous Goods • Disputes and Variations • EDI Hub • Freight Forwarding • Last Mile • Logistics Dashboard • Logistics Quotation • Logistics Suite Base • Logistics UAE • Logistics UAE Customs • Project Cargo • Road Transport • Ship Agency • Track and Trace • Warehouse 3PL |
| Lines of code | 31132 |
| Technical Name |
eh_log_suite_ae |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) • Purchase (purchase) • Sales (sale_management) |
| Community Apps Dependencies |
Show
•
Carrier Portal
• Cold Chain • Container Management • Customs Broker • Dangerous Goods • Disputes and Variations • EDI Hub • Freight Forwarding • Last Mile • Logistics Dashboard • Logistics Quotation • Logistics Suite Base • Logistics UAE • Logistics UAE Customs • Project Cargo • Road Transport • Ship Agency • Track and Trace • Warehouse 3PL |
| Lines of code | 31132 |
| Technical Name |
eh_log_suite_ae |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
UAE Logistics Suite
The whole ERP Heritage logistics stack on one Odoo 19 Community database, scoped to the UAE, with the Mirsal 2 customs adapter wired in.
Why this module
UAE Logistics Suite
Operational engines, not field names
Freight jobs carry HBL and HAWB documents, milestones and a cost versus revenue ledger. Customs declarations validate HS code format and length and run a deferment account ledger. Container demurrage computes chargeable days as max of zero and days at destination minus free time days, then multiplies by the daily rate. The mechanisms are in the code, not just the labels.
One sale order, one version stream
Every operational job is born from a confirmed quotation. The quotation carries live margin, credit and KYC guards that raise typed exceptions on hard failures and route red orders through manager approval. All 19 modules sit on the same Odoo 19 release line, tested together as a set rather than assembled from mismatched publishers.
Mirsal 2 adapter, mock by default
Ships UAE free zones, sea ports, airports and customs offices as master data, plus a Mirsal 2 adapter that serialises a customs declaration into the documented XML envelope and parses submission and status responses. A fresh install defaults to mock so it never accidentally calls a live Dubai Trade endpoint before you configure credentials.
Day in the life
A sea import file, quote to clearance
An ops clerk confirms a logistics quotation. The margin and credit guards are green, so confirmation spawns a sea freight job with its document checklist and milestone plan. A customs declaration is raised against the job, HS codes are validated on entry, and the Mirsal 2 adapter serialises the submission. A carrier webhook posts an arrival event, the HMAC signature is verified, the carrier code is mapped to a normalized event, and the public tracking timeline updates. Container free time runs out, demurrage starts to accrue, and the dashboard tile for the file turns amber. Every step is logged with user, timestamp and context.
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.
Confirming a sale order whose freight job is already closed does not silently create a second job. The hook raises a UserError directing the operator to raise a Variation instead, so a billing correction never spawns a duplicate operational file.
The inbound carrier webhook computes an HMAC-SHA256 over the raw body and compares it with the carrier signature header using constant time comparison. Missing, misconfigured or mismatched signatures return distinct structured error codes (EHL-TRK-102 through 104) and the event is rejected, not ingested.
When a carrier sends an event code that has no mapping in the endpoint configuration, the ingest returns ignored rather than guessing. Unknown references and missing required fields each return their own error code, so integration faults surface explicitly instead of corrupting the timeline.
The dangerous goods declaration scans its lines, walks each UN number to its primary hazard class, and flags any pair that appears on the other class IMDG incompatibility list. A mixed load that breaches segregation is surfaced with a summary rather than passing through unchecked.
Bonded 3PL warehouse movements are immutable after creation. Both write and unlink raise (EHL-WHS-016) and direct the user to post a reversing entry, so the storage and handling billing base can never be edited away under the operator.
An outbound EDI message that keeps failing increments its retry count each cron pass; when it reaches the max retry budget the row moves to dead letter for an operator to inspect. The payload is built once and reused on every retry so the partner always sees identical content across attempts.
What is inside
Built to do the job, end to end.
- Quotation and freight spine. Logistics Quotation extends the sale order with charge templates per lane and mode, multi-leg charge classification, and live margin, credit and KYC guards with an approval matrix. Confirmation spawns a Freight Forwarding job for sea, air, land or multimodal with HBL, HAWB, MBL, MAWB, milestones, a document checklist and a cost versus revenue ledger.
- Customs, containers and hazmat. Customs Broker carries declaration types, HS code validation, a regulator-of-record abstraction and a deferment account ledger. Container Management tracks depots, gate movements, M&R work orders, lease in and out, and demurrage and detention with an EIR. Dangerous Goods ships UN number and hazard class masters with an IMDG segregation incompatibility detector.
- Distribution, EDI and visibility. Road Transport, Last Mile, Project Cargo, Ship Agency, Cold Chain and bonded 3PL Warehouse cover the execution side. EDI Hub speaks EDIFACT and X12 with per-partner mapping, retry queues and a dead-letter lane. Track and Trace adds a public tracking page, a normalized event log and signed carrier webhooks. One dashboard rolls it all into KPI tiles with drill-down.
- UAE master data and Mirsal 2. Logistics UAE seeds free zones, sea ports, airports, customs offices, country charge codes and default declaration types. Logistics UAE Customs adds the Mirsal 2 adapter that serialises declarations into the documented XML envelope, with submission and status messages, Dubai Trade hooks, FTA defaults, and country-scoped declaration types and HS overlays. Defaults to mock until credentials are set.
Honest about the edges
What this does not do, so nothing surprises you.
- This is a meta package. It contains no models of its own; it declares the 19 constituent modules as dependencies so one click installs them together. Listing capabilities live in those modules.
- The Mirsal 2 adapter ships in mock mode by default. It serialises and parses the documented XML contract, but live Dubai Trade submission requires you to supply credentials, flip the profile environment, and validate against the sandbox first.
- Carrier webhook ingest is HMAC-signed and append-only but is not deduplicated. A carrier that re-posts the same event will record a second timeline entry; reconcile at the carrier or endpoint level if exactly-once delivery is required.
- UAE master data (ports, airports, free zones, customs offices, charge codes) is seeded as a practical starting set, not an exhaustive or continuously maintained official registry. Review and extend it for your own operations.
- Cold chain readings, dangerous goods classification and customs codes are operational tooling, not a substitute for regulatory sign-off. Carrier, IMDG, IATA and customs authority requirements remain the operator's responsibility.
UAE logistics Odoo 19, Dubai freight forwarding software, Mirsal 2 Odoo adapter, Odoo customs broker UAE, container demurrage detention Odoo, dangerous goods IMDG Odoo, 3PL warehouse billing Odoo, EDI EDIFACT X12 Odoo logistics, track and trace carrier webhook, ship agency disbursement account Odoo, Odoo 19 Community logistics suite, Emirates freight customs transport
Please log in to comment on this module