- Home
- Apps
- Multichannel & PIM Tools
- Transport Management System (TMS) for Odoo
Illustrative previewBuild-to-order Odoo TMS to plan trips, dispatch drivers & vehicles, route stops, and bill freight
— built and installed by ECOSIRE.
What is Transport Management System (TMS) for Odoo?
Build-to-order Odoo TMS to plan trips, dispatch drivers & vehicles, route stops, and bill freight — built and installed by ECOSIRE. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- Odoo Compatibility
- Odoo 17, Odoo 18, Odoo 19
- Editions
- Enterprise & Community
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- PostgreSQL 12+
About this Product
Transport Management System (TMS) for Odoo is a build-to-order module that ECOSIRE designs, builds, installs and supports on your own Odoo 17, 18 or 19 database — not an off-the-shelf apps.odoo.com download. If you run your own delivery fleet, your operation lives in three disconnected places today: a spreadsheet for the daily dispatch board, WhatsApp for driver instructions, and Odoo Sales/Accounting for the money. Trips get double-booked, drivers show up without a manifest, and freight charges get invoiced late (or forgotten). This module closes that gap by making the trip a first-class object inside Odoo, wired directly to the customers, products, deliveries and invoices you already manage.
At the core is a new tms.trip model (extending models.Model) that represents a single load or run: origin, destination, an ordered set of stops, the assigned driver and vehicle, scheduled and actual departure/arrival, and the freight lines to be billed. Stops are child records (tms.trip.stop) with sequence, contact, pickup-or-delivery type, planned window and captured proof of delivery. Computed fields with @api.depends roll up total distance, estimated duration, load weight/volume and total freight cost so planners see feasibility before they commit a truck. A Kanban dispatch board and a Gantt-style planning view (OWL/XML) let dispatchers drag trips onto drivers and vehicles, while a status flow (draft → planned → dispatched → in transit → delivered → invoiced) drives what everyone sees.
Because it is native Odoo, the module reuses fleet.vehicle for your trucks and vans, hr.employee or a dedicated driver profile for drivers, res.partner for shippers/consignees, and links each trip back to stock.picking deliveries and sale.order lines where relevant. Freight is priced per trip line — by distance, weight, pallet, container or flat rate — and a "Create Invoice" action generates a standard account.move so billing stays in one ledger with the rest of your accounting. Driver settlements, fuel and toll costs are captured as trip expenses so you can see true margin per run.
Security is enforced the Odoo way: ir.model.access.csv grants define what Dispatcher, Driver and Manager groups can read or write, and record rules keep a driver scoped to only their own assigned trips (and, in multi-company setups, to their own company). QWeb reports produce a printable trip sheet / manifest and a delivery note the driver carries, plus a proof-of-delivery PDF. Automated actions and scheduled crons handle the repetitive work — auto-flagging overdue trips, notifying the next stop's contact, and escalating a trip that has been sitting in "dispatched" too long. Everything is reachable over Odoo's XML-RPC / JSON-RPC API, so a driver mobile app, a telematics feed or a customer portal can push and pull trip data without a separate integration layer.
ECOSIRE builds the module to your fleet's real workflow — your stop types, your freight rate rules, your document layouts — tests it against Odoo 17, 18 and 19 (Community or Enterprise), and installs it on your server or hosting with your data. Typical delivery is one working week depending on scope. You receive the full source, a configured working system, documentation, admin and dispatcher training, and a support window. Nothing is a black box: the code is yours, standard Odoo, and upgradeable.
What you get
- Full module source code (`__manifest__.py`, models, views, security, reports) delivered as a versioned Odoo addon you own outright
- Installation on your Odoo 17, 18 or 19 database (Community or Enterprise) — on your server, Odoo.sh, or ECOSIRE-managed hosting
- Configuration to your operation: your stop types, freight rate rules, driver/vehicle data, document layouts and status flow
- Data setup or migration of existing fleet, driver and customer records into the new trip structure
- Admin/technical documentation plus an end-user guide for dispatchers and drivers
- Live training sessions for planners, dispatchers and administrators (recorded for future staff)
- Sample QWeb report templates (trip sheet, delivery note, POD) branded to your company
- A defined post-go-live support window for bug fixes, questions and minor adjustments
Who this is for
Fleet dispatcher / operations planner
Builds the daily dispatch board, assigns loads to drivers and trucks, and needs one screen showing who is free, which trips are overdue, and what each driver must pick up and deliver — instead of a spreadsheet plus WhatsApp.
Transport company owner / operations manager
Runs a for-hire or in-house fleet and wants trips, freight revenue and per-run cost inside the same Odoo their accounting already uses, so they can see margin per trip and stop chasing uninvoiced deliveries.
Distributor with an own-fleet last mile
Ships their own products to customers and needs delivery/pickup orders tied to Odoo stock pickings and sales orders, so warehouse, dispatch and invoicing move as one flow rather than three.
Odoo administrator / finance lead
Owns the Odoo instance and cares that freight billing lands as standard `account.move` invoices, that security is enforced with proper access rights and record rules, and that the module is clean, standard Odoo they can maintain and upgrade.
How Transport Management System (TMS) for Odoo Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Fits your exact dispatch, stop types and freight-rate rules | Included | Partial support | Not included | Not included |
| Trip as a first-class object (multi-stop, driver+vehicle, status flow) | Included | Partial support | Partial support | Not included |
| Freight costing → one-click standard `account.move` invoice | Included | Partial support | Partial support | Not included |
| Native security: `ir.model.access.csv` groups + record rules per driver | Included | Partial support | Partial support | Partial support |
| Tested and supported across Odoo 17, 18 and 19 (Community & Enterprise) | Included | Partial support | Partial support | Included |
| You own the full source code and can upgrade/maintain it | Included | Included | Not included | Included |
| Built, installed and configured on your data for you | Included | Not included | Not included | Not included |
| Post-go-live support window + training included | Included | Not included | Partial support | Not included |
| XML-RPC/JSON-RPC ready for driver app / telematics / portal | Included | Partial support | Partial support | Partial support |
| Time-to-value without a long in-house dev project | Included | Not included | Included | Partial support |
Frequently Asked Questions about Transport Management System (TMS)
How long does delivery take, and is this an instant download?
This is a build-to-order module, not an instant apps.odoo.com download. ECOSIRE builds it to your fleet's actual workflow, tests it on your target Odoo version, and installs it on your database. Typical delivery is one working week depending on scope — simpler dispatch-only builds land sooner, and heavier freight-rate logic or telematics/portal integrations take longer. You get a scoped timeline before work starts.
What support and updates come with it after go-live?
Every build includes a defined post-go-live support window for bug fixes, questions and minor adjustments. Because the module is standard Odoo and you own the full source, it is not a locked black box — you can maintain it in-house or contract ECOSIRE for enhancements. We also validate compatibility across Odoo 17, 18 and 19 so a future core upgrade has a clear path. Extended support and version-upgrade retainers are available on request.
Which Odoo versions and editions are supported?
Odoo 17, 18 and 19, on both Community and Enterprise. The module is built to work with Odoo core objects you already have — `fleet.vehicle`, `res.partner`, `stock.picking`, `sale.order` and `account.move` — so it fits whichever edition you run. If you use Enterprise-only apps, we wire the trip flow to them where it helps; if you are on Community, the module stands on its own without paid dependencies.
Can it integrate with a driver mobile app, GPS/telematics or a customer portal?
Yes. All trip and stop data is available over Odoo's XML-RPC and JSON-RPC API, so an external driver app, a telematics/GPS feed or a customer tracking portal can read and update trips, capture proof of delivery, and post arrival times. ECOSIRE can build or connect those integrations as part of the scope, or leave clean API endpoints for your own team to consume.
How does freight billing work — does it create real Odoo invoices?
Freight is priced on trip lines using rules you define (by distance, weight, pallet, container, zone or flat rate, including customer-specific rates). A 'Create Invoice' action generates a standard `account.move` in Odoo Accounting, so freight revenue lands in the same ledger as the rest of your business — no separate billing tool, no re-keying. Trip costs like fuel, tolls and driver settlements are captured too, so you get margin per run.
Is our data and access properly secured?
Yes. Access is enforced with Odoo's native model — `ir.model.access.csv` grants define what Dispatcher, Driver and Manager groups can read or write, and record rules scope each driver to only their own assigned trips (and to their own company in multi-company setups). Nothing bypasses Odoo's permission system, so your existing user and company security carries through.
Can it handle multi-company or multi-branch fleets?
Yes. The module respects Odoo's multi-company rules — trips, vehicles, drivers and freight invoices are scoped per company, and record rules keep each branch's dispatchers seeing only their own operation. If you run one shared fleet across branches, ECOSIRE configures the sharing rules during the build so assignment and billing land in the right company.
Related Modules

Theme Base — Shared eCommerce Theme Foundation
A shared foundation module that centralizes the assets, snippet options, and helper models every one of your Odoo eCommerce themes depends on — built to order by ECOSIRE so your themes stay consistent, upgradeable, and free of duplicated code.

Theme Common — Shared Website Theme Utilities for Odoo
A build-to-order shared foundation layer for your Odoo website themes — one common library of QWeb snippets, SCSS design tokens, and reusable OWL/JS widgets that every child theme inherits. ECOSIRE scopes, builds, installs, and supports it for you.

Universal Marketplace Connector Hub (Orchestration Layer)
One Odoo control-tower orchestrating products, inventory, orders and pricing across 100+ marketplaces — instead of juggling N single-channel connectors.

Universal Scale Reader
A build-to-order Odoo module that captures live weight readings from your hardware scales and writes them directly into Odoo inventory, POS, and quality flows. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17/18/19 environment.
Transport Management System (TMS)
Build-to-order Odoo TMS to plan trips, dispatch drivers & vehicles, route stops, and bill freight — built and installed by ECOSIRE.
- Trip/load planning with a Kanban dispatch board and Gantt-style scheduling view (OWL/XML) — drag trips onto drivers and vehicles
- Native `tms.trip` model with a status workflow (draft → planned → dispatched → in transit → delivered → invoiced) driving what each role sees
- Driver and vehicle assignment reusing Odoo `fleet.vehicle` and driver profiles, with availability checks to prevent double-booking
- Multi-stop route planning: ordered `tms.trip.stop` child records with sequence, pickup/delivery type, planned time window and per-stop contact