Build-to-order Odoo TMS to plan trips, dispatch drivers & vehicles, route stops, and bill freight — built and installed by ECOSIRE. One-time license from $499.00 USD for Odoo 17, 18, 19 — includes 12 months of updates and support.

Build-to-order Odoo TMS to plan trips, dispatch drivers & vehicles, route stops, and bill freight — built and installed by ECOSIRE.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
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.
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
Delivery and pickup order management linked to `stock.picking` and `sale.order` lines so warehouse and dispatch stay in sync
Computed roll-ups via `@api.depends` for total distance, estimated duration, load weight/volume and total freight cost
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 2 to 4 weeks 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.
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.
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.
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.
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.
Buy the license on ecosire.com and download the Transport Management System (TMS) for Odoo module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for Transport Management System (TMS) for Odoo, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Fits your exact dispatch, stop types and freight-rate rules | ||||
| Trip as a first-class object (multi-stop, driver+vehicle, status flow) | ||||
| Freight costing → one-click standard `account.move` invoice | ||||
| Native security: `ir.model.access.csv` groups + record rules per driver | ||||
| Tested and supported across Odoo 17, 18 and 19 (Community & Enterprise) | ||||
| You own the full source code and can upgrade/maintain it | ||||
| Built, installed and configured on your data for you | ||||
| Post-go-live support window + training included | ||||
| XML-RPC/JSON-RPC ready for driver app / telematics / portal | ||||
| Time-to-value without a long in-house dev project |
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 2 to 4 weeks 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.
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.
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.
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.
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.
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.
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.
Build-to-order Odoo TMS to plan trips, dispatch drivers & vehicles, route stops, and bill freight — built and installed by ECOSIRE.