The vehicle is where the data is created and where the connection is worst. That constraint drives the whole architecture.
Proof of delivery captured on paper and keyed in later
Dispatch plans that cannot react to real-time conditions
No reliable record of where a consignment actually is
Driver apps that fail whenever the signal drops
Plan as a domain object, adjustable during the day without a rebuild.
Offline-first capture with predictable conflict resolution on sync.
Signature, photo and scan tied to the consignment record.
Customer-facing status derived from real events, not estimates.
Logistics is a chain of custody. The modules worth having are the ones that make each handover checkable afterwards.
Every handover is a scan. Labels that carry lot and serial data make a dispatch note something you can reconcile rather than something you hope is right.
Stock ageing in a bonded or third-party warehouse is a storage bill nobody reads. This puts the number in front of the person paying it.
A deleted movement record is a broken chain of custody. Decide who may delete, export and print - and keep the log of everybody who tried.
Proof of delivery, customs paperwork and damage photographs filed automatically into SharePoint, where the claims team already works.
Every one of these is on the Odoo Apps Store and installs on its own. Nothing here requires the others, and the order is an opinion rather than a dependency. See the whole catalogue.