| 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 Oman • Logistics Oman Customs • Logistics Quotation • Logistics Suite Base • Project Cargo • Road Transport • Ship Agency • Track and Trace • Warehouse 3PL |
| Lines of code | 30972 |
| Technical Name |
eh_log_suite_om |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
| Versions | 16.0 17.0 18.0 19.0 |
Oman Logistics Suite
The full ERP Heritage freight, customs, and 3PL stack plus Oman port, free zone, and Bayan single window data, version-aligned under one install.
See it in action

One suite, one operational paneQuotations, freight, customs, transport, last mile, cold chain, containers, ship agency and project cargo, every engine reporting into one dashboard.

The forwarding boardThe freight desk reads its whole book in one screen, grouped by state with mode, lane and cargo on every card.

Every file wired to the suiteA job file links out to quotations, bills of lading, containers, bookings, customs, cold chain and disputes, one connected operation rather than isolated modules.
Why this module
Oman Logistics Suite
Nineteen modules, one version
Installing this bundle pulls every engine and both Oman packs at one matched version. No mixed-version drift across the freight, customs, and 3PL line, and one support contact at ERP Heritage.
Ports and Bayan out of the box
Ships Oman ports, airports, customs offices, and free zones as seeded data covering Sohar, Salalah, and Duqm, plus a Bayan single window adapter that speaks the documented JSON contract for submit, status, and health.
The hard cases are enforced
Container numbers are checked against the ISO 6346 pattern, dangerous goods lines are scanned for IMDG segregation conflicts, customs submit checks the deferment balance, and 3PL storage snapshots are immutable once written.
Day in the life
A shipment from quote to clearance
A quotation is priced from a charge template, then becomes a freight job with an Incoterm, a mode, and a live cost versus revenue margin. Containers on the job validate against the ISO 6346 number format, the bill of lading links house to master, and milestones move the job through its state machine. A customs declaration carries the cargo by HS code, computes duty and VAT against the declared customs value, and on submit checks that a deferment account is present with enough balance before the Bayan adapter sends it. Carrier webhooks, verified by HMAC signature, drop tracking events onto the public timeline the consignee watches.
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.
Container numbers are matched against the ISO 6346 pattern, four letters then seven digits, so a mistyped equipment number is caught at entry rather than on the bill of lading.
The dangerous goods declaration scans its lines against the IMDG class incompatibility map and flags a warning when two classes that cannot share a transport unit appear together.
Moving a customs declaration to submitted checks that, where the declaration type requires it, a deferment account is set and the balance covers the payable duty and VAT, otherwise it raises.
Daily on-hand warehouse snapshots are unique per date, client, and location and cannot be edited or deleted after creation, so billing periods cannot be retroactively rewritten.
Inbound carrier tracking posts are rejected unless the HMAC SHA256 signature matches the per-carrier secret, and unmapped carrier event codes are ignored rather than guessed.
An outbound EDI message reuses its frozen payload on retry so the partner sees identical content, increments a retry counter, and moves to a dead letter state once the budget is spent.
A ship agency port call against a berth is rejected when the vessel draft exceeds berth depth or the length overall exceeds the berth maximum.
What is inside
Built to do the job, end to end.
- Freight forwarding job file. A sea, air, or road job with an Incoterm 2020, milestones split into planned and actual, house and master bills of lading, ISO 6346 validated containers, and a cost versus revenue ledger that surfaces gross margin.
- Customs broker. Declarations with per HS code lines, duty and VAT and total computed from the declared customs value, declaration types, and deferment accounts with a balance guard on submission.
- Oman localisation and Bayan. Seeded Oman ports, airports, customs offices, and free zones, plus a Bayan single window adapter, country scoped declaration types, and HS code overlays for the Sultanate.
- Container, cold chain, dangerous goods. Container depots, gate movements, and lease contracts, cold chain profiles with automatic deviation detection on threshold breach, and a dangerous goods register with IMDG segregation checks.
- 3PL warehouse and EDI. Immutable daily on-hand snapshots feeding billing runs against rate cards, and an EDI outbound queue with sequencing, retry budget, and dead letter handling.
- Track and trace. A public customer timeline fed by internal state transitions and HMAC signed carrier webhooks, with per carrier event code mapping and customer subscriptions.
Honest about the edges
What this does not do, so nothing surprises you.
- This is a dependency bundle. It installs and version-aligns the nineteen constituent modules and ships no models, views, or business logic of its own.
- The Bayan adapter implements the documented JSON contract with submit, status, and health endpoints and ships mock fixtures for testing. Live production credentials and a real regulator endpoint must be supplied and verified by the operator.
- Track and trace verifies the carrier webhook signature but does not deduplicate inbound events by an external event id, so a carrier that re-sends the same event will append it again.
- The Oman packs seed a starter set of ports, airports, customs offices, free zones, declaration types, and HS overlays. Operators extend these with their own depots, lanes, and tariff detail.
- Customs duty and VAT are computed from values entered on the declaration. This is not a tariff schedule engine and does not look up live duty rates by HS code.
- Licensed and supported for Odoo 17 Community. Earlier versions are not covered by this build.
Oman logistics Odoo, Oman freight forwarding, Oman customs broker, Bayan single window Odoo, Sohar Salalah Duqm ports, freight forwarding Odoo 17, customs declaration Odoo, container management Odoo, dangerous goods IMDG Odoo, 3PL warehouse billing Odoo, cold chain monitoring Odoo, ship agency Odoo, EDI logistics Odoo, track and trace carrier webhook, project cargo Odoo, Odoo 17 Community logistics suite
Modules teams pair with this one.
Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.
The New Zealand country pack for the ERP Heritage Employment Hero integration
A reusable two way synchronisation engine that keeps Odoo in step with the people and payroll platform, idempoten...
The Australia country pack for the ERP Heritage Employment Hero integration
Please log in to comment on this module