Route Planner Suite for Odoo
A full-stack multi-stop route planning solution for Odoo: from the Mapbox GL infrastructure layer and an integrated list-map view, through a complete route planning application with driver portal and customer address pinpointing. Seven modules, one integrated workflow from dispatch to delivery.
Product Overview
The Route Planner Suite is a layered set of Odoo modules that brings Mapbox GL JS into the Odoo ecosystem and delivers a production-ready, multi-stop route planning experience on top of it. The suite is designed so each layer is independently useful: the foundation modules can power any map-based feature in your Odoo instance, while the application modules deliver a complete dispatch-to-delivery workflow out of the box.
Architecture at a Glance
Foundation layer — core Mapbox GL infrastructure that any Odoo module can build on:
base_mapbox_gl— Mapbox configuration, geocoding, on-map controls, and shared UI componentsweb_view_base_mapbox_gl— Registersmapbox_glas a new Odoo view type with sidebar, grouping, search, and selectionweb_view_list_with_mapbox_gl— A split-screen list-plus-map widget for One2many/Many2many fields with automatic route calculation
Application layer — a complete multi-stop route planning solution on top of the foundation:
route_planner— The base Route Planner application: route lifecycle, stops, route types, fleet integration, TSP algorithmsroute_planner_mapbox_gl— Extends Route Planner with Mapbox map visualization and API-based routingwebsite_route_planner_mapbox_gl— A mobile-friendly driver portal for executing routes in the fieldwebsite_portal_pinpoint_address_mapbox_gl— Portal "My Address" map dialog with auto-geocoding and draggable marker
Who This Suite Is For
- Delivery and logistics teams coordinating multi-drop routes from a central dispatcher
- Field service operations visiting customer sites for maintenance, inspections, or repairs
- Sales and outreach teams planning structured customer visit circuits
- Odoo integrators and developers who want reusable Mapbox GL infrastructure to build custom map-enabled features
- Any Odoo user who needs to schedule, optimize, and track sequential visits to multiple locations
The Problem It Solves
Multi-stop route planning inside Odoo creates specific operational challenges that a basic map view doesn't address. The Route Planner Suite covers those workflow gaps end-to-end:
Routes Without Visual Verification
Without a way to see multi-stop routes drawn on real road geometry, dispatchers can't verify the route order before sending it out — so a misplaced stop or impossible sequence isn't caught until the driver is already on the road. The suite puts every planned route on a Mapbox map with road geometry and per-segment metrics, so problems surface before dispatch.
Manual Distance and Duration Estimates
Teams typically guess travel time from experience or run each leg through Google Maps by hand. The suite fetches per-segment distance and duration directly from Mapbox and saves them to each stop automatically, with totals rolled up on the route form.
Stop Order Optimization by Hand
Re-arranging multi-drop routes manually rarely produces the shortest total travel time. The Optimize Route action runs nearest-neighbor + 2-opt TSP locally against a Mapbox Matrix API call, or the Optimization API computes the optimal sequence outright.
Drivers Stuck in the Backend
Field drivers shouldn't need Odoo backend credentials or a desktop browser to see their day's work. The driver portal gives them a secure, mobile-friendly route view with status updates, notes, and turn-by-turn navigation — no backend access required.
Service Time Hidden in Travel Time
If you only count driving time, estimated arrival is always optimistic. Per-stop service duration separates on-site time from travel time so the route's estimated arrival reflects what actually happens in the field.
Operation-Specific Requirements
A delivery route needs a vehicle, driver, and date confirmed; a sales-visit route doesn't. Configurable route types let one application handle multiple operational patterns without custom development, keeping data quality consistent.
No Audit Trail by Default
External tools, spreadsheets, and phone calls leave no record of what happened on a route. Native chatter on routes and stops plus automatic logging of driver portal actions creates a complete audit trail without any extra steps.
Reinventing Map Plumbing
Every team that wants a custom map view or geocoding feature in Odoo ends up rebuilding the same plumbing. The foundation layer provides reusable view types, a list-plus-map widget, base OWL components, and centralised configuration so developers focus on their domain.
Mapbox GL Infrastructure for Odoo
The foundation layer provides the reusable building blocks every other Mapbox feature in your Odoo instance depends on: centralized configuration, a new map view type, and a turnkey list-plus-map widget. Install them on their own to empower custom development, or let the application modules pull them in automatically.
Base Mapbox GL JS
The foundation module for all Mapbox GL JS integration in Odoo. It manages your Mapbox configuration, provides geocoding services, bundles the required mapping libraries, and supplies the core building blocks that every other Mapbox module in the suite depends on.
Overview
Base Mapbox GL JS installs the Mapbox libraries into Odoo and wires up centralized settings so every map-enabled feature across your system uses the same token, style, and visual preferences. It registers Mapbox as a geocoding provider so Odoo can convert addresses to coordinates natively, and supplies a reusable location search component that any map view can embed. Developers get a base OWL component and a mixin that make building new map-enabled features straightforward.
Key Features
- Centralized Configuration — Manage the Mapbox access token and default map settings from a single place in Odoo's Settings menu.
- 10 Preset Map Styles — Standard, Standard Satellite, Streets, Outdoors, Light, Dark, Satellite Streets, Navigation Day, Navigation Night, and OpenStreetMap — plus full support for custom Mapbox Studio style URLs.
- On-Map Style Switcher — An interactive control embedded in every map that lets users change style, lighting, theme, projection, and language on the fly.
- 8 Map Projections — Globe (3D), Mercator, Equal Earth, Natural Earth, Albers USA, Winkel Tripel, Lambert Conformal Conic, and Equirectangular.
- Lighting & Theme Customization — Four lighting presets (Dawn, Day, Dusk, Night) and three themes (Default, Faded, Monochrome) for Standard styles.
- 35+ Language Support — Display map labels in the language of your choice, configurable globally or per map.
- Mapbox Geocoding Provider — Registers Mapbox as an address-to-coordinates provider in Odoo's native geocoder framework.
- Location Search Box — A compact, expandable search component that finds addresses and points of interest and flies the map to the selected result.
- Standard Navigation Controls — Zoom buttons, compass, fullscreen toggle, and a dynamic distance scale bar on every map.
- Offline Detection & Auto-Retry — Detects lost connectivity, shows a clear warning, and automatically retries when the connection is restored.
- Developer Foundation — A reusable
BaseMapboxGlComponentOWL class, awithMapboxGl(Base)mixin for existing components, and shared color/GeoJSON utility helpers.
Use Cases & Benefits
One Token, Every Map
Configure your Mapbox access token once and every map-enabled feature across Odoo uses it automatically — no per-module setup, no duplicated credentials.
Brand-Consistent Maps
Pick from 10 presets or point the suite at a custom Mapbox Studio style — all maps across Odoo inherit the same visual identity.
International Ready
35+ supported languages and 8 projections make the suite suitable for global operations with regional or localized needs.
Resilient on Shaky Connections
Offline detection and automatic reconnection prevent the broken-map experience when connectivity drops and returns.
Reusable for Custom Development
The base OWL component, mixin, and utility helpers let developers build new map-based widgets or views without reinventing plumbing.
Web View Base Mapbox GL
The foundation module for Mapbox GL JS map views in Odoo. It introduces mapbox_gl as a new view type and provides the core infrastructure — controller, renderer, model, sidebar — that specialized map modules extend.
Overview
This module doesn't display maps on its own; it's the blueprint. It adds the framework needed to display Odoo records on interactive Mapbox maps, including a record sidebar that stays synchronized with the map, rich selection tools (Shift+click, box-zoom), Odoo-native search and grouping integration, and full action-menu support. Any module that wants to put records on a map builds on this framework rather than reinventing the view infrastructure.
Key Features
- New Odoo View Type — Registers
mapbox_glas a first-class view type alongside form, list, and kanban. - XML View Definition Support — Define map views declaratively in XML with map-specific attributes and field configuration.
- Record Sidebar — A scrollable list of records next to the map with click-to-focus synchronization in both directions.
- Map-Record Sync — Clicking a record highlights it on the map; clicking the map surfaces the record in the sidebar.
- Batch Selection — Select multiple records on the map for bulk operations, with a Select All option.
- Box-Zoom Selection — Hold Shift and drag a rectangle to select all markers within the drawn area in a single gesture.
- Shift+Click Selection — Toggle individual markers in and out of the current selection directly on the map.
- Grouping Support — Group records by any field with collapsible sections in the sidebar.
- Pager Integration — Works with Odoo's standard pagination for large datasets.
- Search, Filter & Favorite Support — Full integration with Odoo's search bar, saved filters, and favorites.
- Action Menu Integration — Export, delete, archive, and custom actions available directly from the map view.
- Popup Information — Hover popups display key record fields without leaving the map.
- Automatic Bounds Fitting — The map adjusts zoom and position automatically to show all relevant features.
- Debounced Updates & Batched Processing — Keeps the UI responsive with hundreds or thousands of records.
- Data Caching — Caches processed record data to avoid redundant computation when paging or toggling groups.
Use Cases & Benefits
Geographic Record Browsing
Any Odoo model with location data can become a map view — customers, assets, sites, deliveries, leads — with the same familiar search, filter, and action patterns users already know.
Fast Multi-Record Selection
Box-zoom and Shift+click make it trivial to select clusters of records by geography and act on them in bulk.
Native Odoo Feel
Search bar, filters, group-by, pager, and action menu all work exactly as they do in other Odoo views, so there's nothing new to learn.
Scales to Large Datasets
Batched processing, debounced updates, and caching keep the interface responsive when visualizing thousands of records.
Extensible by Design
Other modules extend this framework to add specialized experiences — territory drawing, geolocation, route planning — without rewriting the view plumbing.
XML-Declarative
Map views are defined in XML like any other view, so they're easy to customize, inherit from, and layer into existing window actions.
Web View List with Mapbox GL
A split-screen view that combines an editable list with an interactive Mapbox map for route planning. It automatically calculates routes, displays them on the map, and writes distance and duration values back to your records in real time.
Overview
This module adds a new list_with_mapbox_gl view type purpose-built for managing ordered, route-like collections within Odoo forms. The left side shows an editable list of stops you can reorder, add, or remove; the right side displays an interactive map that automatically draws the route and shows numbered markers for each stop. It plugs into any One2many or Many2many field, so the same widget powers route planning, delivery batches, service visit schedules, or any other ordered geographic sequence.
Key Features
- Split-Screen Layout — Editable list on the left, interactive map on the right, resized fluidly inside any form.
- X2many Field Widget — Works as a widget for One2many or Many2many fields, embeddable inline in any Odoo form.
- Automatic Route Calculation — Routes are computed via the Mapbox Directions or Optimization API the moment stops change.
- Live Distance & Duration Updates — Computed per-leg distance and duration are automatically saved back to each record.
- Interactive Markers — Departure label, sequentially numbered stop markers, finish marker, and click-to-open popups.
- Route Visualization — Cyan-colored route line with directional arrows showing travel direction along real roads.
- Route Info Panel — Overlay showing total distance, duration, and a segment-by-segment breakdown.
- Drag-and-Drop Reordering — Reorder stops with the handle widget; the map and metrics update automatically.
- Debounced Smart Updates — A 1,000 ms debounce prevents excessive API calls during rapid editing while keeping the feedback immediate.
- Route Exclusion Options — Avoid tolls, highways, ferries, unpaved roads, or cash-only tolls (Directions API).
- Round-Trip Support — Option to close the loop back to the starting point (Optimization API).
- Share to Google Maps — Generate a shareable Google Maps link with all waypoints preserved.
- GeoJSON Export — Download the complete route as a GeoJSON file for use in GIS tools or archival.
- Cooperative Gestures — The map doesn't hijack page scrolling — hold Ctrl/Cmd or use two-finger touch to pan.
- Route Error Handling — Clear in-context warning when a route cannot be calculated (e.g., unreachable destination).
Use Cases & Benefits
Instant Visual Feedback
Edit the list and see the route change immediately — no save, no refresh, no context switch. Planning feels interactive rather than batch-oriented.
No Manual Distance Entry
Per-leg distance and duration are computed and saved automatically, eliminating a whole category of manual data entry and errors.
Drop Into Any Form
As a standard X2many widget, it plugs into delivery orders, service tickets, sales visits, or any form with an ordered list of locations.
Directions or Optimization
Choose the right Mapbox API per use case: Directions when order matters, Optimization when minimizing total travel time is the goal.
Shareable Output
Share the route to Google Maps with a click or export it as GeoJSON for use in other tools — plan in Odoo, execute anywhere.
Responsible API Usage
Debounced recalculation and error handling keep Mapbox costs predictable even during heavy editing sessions.
Route Planner — End-to-End Multi-Stop Planning
The application layer delivers a complete, production-ready multi-stop route planning solution on top of the foundation modules. Install all three together for the full experience: structured dispatch workflow, Mapbox-powered visualization and routing, and a driver-facing portal that closes the loop from planning to execution.
Route Planner
The base application for multi-stop route planning in Odoo. It introduces a dedicated Route Planner application with core models, a structured state lifecycle, role-based security, and configurable route types. The other application modules extend this foundation.
Overview
Route Planner provides a standalone application where dispatchers define routes with a departure point, an ordered list of stops, and optional vehicle and driver assignments. Routes progress through a five-state lifecycle (Draft, Confirmed, In Progress, Done, Cancelled) with clear validation at each transition. Each stop tracks its own travel leg and service duration, and totals are aggregated automatically on the route form. Route types let administrators enforce different requirements for different operations — a delivery route might require vehicle, driver, and departure date, while a sales visit route might not.
Key Features
- Dedicated Route Planner Application — A top-level application with its own menu, accessible from the Odoo launcher.
- Multi-Stop Routes — Define a departure point and an ordered list of stops, each linked to a geocoded contact address.
- Five-State Route Lifecycle — Draft, Confirmed, In Progress, Done, and Cancelled, with validated transitions at each step.
- Configurable Route Types — Types with custom colors, departure titles, default service durations, and mandatory-field requirements.
- Vehicle & Driver Assignment — Integrates with Odoo Fleet; selecting a vehicle auto-fills its assigned driver.
- Distance & Duration Aggregation — Per-leg values roll up into route totals displayed in the summary section.
- Service Duration per Stop — Track time spent at each stop separately from travel time, with type-level defaults.
- Estimated Arrival Date — Automatically computed from departure date, travel time, and cumulative service duration.
- Per-Stop Notes — Two note fields per stop: one for dispatcher instructions, one for driver observations.
- Stop Status Tracking — Each stop has its own state (None, Arrived, Done, Cancelled/Skipped) for real-time progress visibility.
- Built-in TSP Algorithms — Nearest-neighbor and 2-opt heuristics available for local route optimization.
- Calendar View — Day, week, month, and year scales, color-coded by route state.
- Role-Based Access Control — Separate User and Administrator roles; users only see their own routes; only Draft routes can be deleted.
- Chatter & Activities — Full message history with tracked field changes and scheduled follow-up activities on every route.
- Automatic Sequence Numbering — Unique reference numbers (e.g., RP/00001) generated on creation.
- Coordinate Validation — Ensures all stops have valid, non-zero GPS coordinates before a route can be confirmed.
Use Cases & Benefits
Structured Dispatch Workflow
The explicit state lifecycle prevents incomplete routes from being dispatched and gives dispatchers clear visibility into where every route stands.
Realistic Arrival Estimates
By separating service time from travel time, the estimated arrival date reflects real-world operations — a route with five 30-minute stops takes 2.5 hours longer than driving time alone suggests.
Operation-Specific Rules
Route types let you configure different requirements for deliveries, field service, and customer visits without custom development, keeping data quality consistent.
Native Odoo Integration
Built on standard Odoo patterns (mail.thread, mail.activity.mixin, record rules) so it behaves like any other Odoo app and integrates with your existing workflows and reporting.
Scheduling Visibility
The calendar view surfaces conflicts, busy periods, and gaps at a glance — helping teams balance workload without switching tools.
Foundation for Extensions
A stable data model and API surface so map visualization, automated routing, and portal modules can build on top without duplication.
Route Planner — Mapbox GL
Extends the Route Planner application with interactive Mapbox map visualization and API-based route calculation. Stops become numbered markers connected by route lines, and per-segment distance and duration are fetched automatically from Mapbox.
Overview
This module replaces the plain stop list with an integrated Mapbox map view on the route form, powered by the list-map view widget from the foundation layer. Dispatchers see routes rendered on real road geometry and can choose between two Mapbox APIs depending on the operation: the Directions API respects the manually-set stop order and supports route exclusions (tolls, highways, ferries), while the Optimization API reorders stops automatically to minimize total travel time. A dedicated Optimize Route action is available with both APIs, using the Mapbox Matrix API combined with the base application's nearest-neighbor and 2-opt algorithms for local optimization without an additional Optimization API request.
Key Features
- Interactive Route Map — An embedded Mapbox map below the stop list, with numbered markers and route lines rendered on real road geometry.
- Per-Segment Distance & Duration — Each leg's distance (km) and duration (hours) are fetched from Mapbox and displayed inline on every stop row, with totals shown at the bottom of the list.
- Service Duration per Stop — A Service Duration field on each stop row records expected on-site time for delivery, unloading, or service tasks. The default value is configurable on the route type via its Default Service Duration field, and a total service duration is summed at the bottom of the stop list for an accurate picture of total route time.
- Directions API Mode — Respects the manual stop order, supports drag-to-reorder, and unlocks route exclusion options.
- Optimization API Mode — Selected by default. Mapbox determines the optimal visit sequence automatically; drag handles are hidden since ordering is handled by the API.
- Optimize Route Action — A one-click optimization available in the Draft state for both the Directions API and the Optimization API, using the Matrix API plus nearest-neighbor and 2-opt algorithms to reorder stops for shorter total travel time.
- Round-Trip Option — Available with the Optimization API; includes the return leg from the last stop back to the departure point.
- Alternative Routes — (Directions API) Enable Enable Route Alternative in Navigation Settings to fetch up to two alternative route geometries alongside the primary route. On the driver portal, alternatives appear as dashed lines and drivers can switch the active route — the selected route is rendered with the full solid primary style. Useful when the primary route is blocked, congested, or otherwise unsuitable.
- Turn-by-Turn Steps — (Both APIs) Enable Enable Route Steps in Navigation Settings to fetch detailed step-by-step maneuver instructions for each segment. On the driver portal, each segment shows an expandable steps panel with a direction icon, instruction text, and distance for every maneuver — helpful for drivers in unfamiliar areas without needing a separate navigation app.
- Avoid Tolls — (Directions API) Routes around toll roads to reduce costs or accommodate company policies on toll usage.
- Avoid Highways — (Directions API) Routes around motorways and major highways — useful for vehicles with highway restrictions or when local roads are preferred.
- Avoid Ferries — (Directions API) Excludes ferry crossings to prevent unexpected delays from schedules and accommodate vehicles that cannot use ferries.
- Avoid Unpaved Roads — (Directions API) Restricts routes to paved surfaces only, protecting vehicles unsuited for off-road or gravel conditions.
- Avoid Cash-Only Tolls — (Directions API) Excludes toll roads that require cash payment — useful when drivers carry electronic toll passes only.
- 25-Stop Limit Enforcement — Validation prevents routes from exceeding Mapbox's 25-waypoint API limit, with a clear error message.
- Visual Route Verification — Dispatchers can spot inefficient paths or misplaced stops before dispatching.
Use Cases & Benefits
Fewer Dispatch Errors
Seeing the route drawn on real road geometry makes it easy to catch misplaced stops, impossible orderings, or suboptimal paths before a driver leaves the depot.
Choose the Right API per Operation
Use the Directions API for time-sensitive deliveries with fixed stop order, or the Optimization API when minimizing total travel time matters more than sequence.
Automated Segment Metrics
No more manual distance lookups or rough time estimates — Mapbox supplies accurate per-leg values that roll up into route totals.
Operational Flexibility
Route exclusions let you adapt to vehicle constraints, driver preferences, or regional concerns (e.g., avoiding ferries for time-sensitive freight).
Local Optimization Without Lock-in
The built-in TSP algorithms let you optimize stop order with a single Matrix API call — cheaper and faster than a full Optimization API request for routine re-sequencing.
API Limits Handled for You
Server-side validation enforces the 25-waypoint cap with a clear error message, preventing opaque Mapbox failures at runtime.
Website Route Planner — Mapbox GL
A mobile-friendly customer-portal interface that lets drivers view and manage their assigned routes through any web browser — no Odoo backend access required. Drivers see routes on interactive maps, update stop status in real time, record delivery notes, attach photo evidence, and collect customer signatures — all from the field.
Overview
This module extends Route Planner with a dedicated driver portal built on Odoo's portal framework. Drivers access a kanban-style dashboard of their assigned routes, open an interactive Mapbox map for each route, and update stop status, attach delivery photos, and collect customer signatures on the device as they complete their work. Route planners can preview the portal in a read-only review mode to verify what drivers will see before sharing a secure, token-based URL. Every driver action is logged to the route's chatter automatically — with delivery photos, customer signatures, and an attached Mapbox Static Image showing the driver's GPS position at the time of each action — creating a complete, location-verified audit trail without requiring drivers to post messages manually.
Key Features
- Driver Portal Dashboard — A kanban-style overview of assigned routes grouped by state, with progress bars, departure/arrival info, and key route details.
- Route Type Badge — Each route card on the dashboard displays the assigned route type as a small badge below the route name, letting drivers and dispatchers immediately identify the category (delivery, service, collection, etc.) at a glance. Routes without a type show no badge.
- Route List Page — A paginated, sortable, searchable table of all assigned routes at
/my/routes, accessible from the portal home page and from the dashboard navbar. Columns for name, vehicle, driver, number of stops, departure date, type, responsible user, and status. Sortable by newest first or by name. A Dashboard button links back to the kanban overview; clicking a route name opens the tabular detail page with a View Map shortcut to the interactive map. - Interactive Route Map — Full route visualization with numbered markers, route paths with directional arrows, and segment-by-segment navigation.
- Stop Status Updates — A dialog lets drivers update stop status (Arrived, Done, or Cancelled/Skipped), add notes, and optionally attach a delivery photo. Two save options: Save & Close submits immediately; Save & Sign submits and opens the customer signature canvas. Notes are required when a stop is cancelled or skipped.
- Service Duration Display — When any stop has a service duration defined, an extra "Service Duration" column appears in the route detail page showing duration per stop and the total at the bottom — helping drivers and dispatchers plan time at each location.
- Delivery Photo Attachment — Drivers can attach a photo to any delivery note — taken with the device camera or selected from the gallery. The photo is previewed inline (max 5 MB) before saving, then stored as an attachment on the route and appears in the chatter alongside the note message.
- Customer Signature Capture — After tapping Save & Sign, a full-screen canvas opens for the customer to draw their signature with touch or mouse. The signature is trimmed, saved as a PNG, and attached to the chatter alongside any delivery photo. Drivers can tap Skip if the customer is unavailable — the note is submitted without a signature.
- One-Click Route Actions — Start and complete routes directly from the portal, with automatic chatter notifications.
- Real-Time Progress Tracking — Completion percentage updates automatically as stops are marked.
- Review Mode — Route planners can preview the portal exactly as drivers see it, with all driver actions safely disabled.
- Secure Token-Based Access — Each route has a unique UUID embedded in its URL; login is still required, and drivers only see their own routes.
- Record-Level Security — Portal users only access routes where they are the assigned driver and the state is Confirmed, In Progress, or Done.
- Administrator Override — Users in the Route Planner Administrator group automatically see all routes and can perform all actions without needing to toggle review mode. The review-mode toggle is hidden from administrators for a cleaner interface.
- Mobile-Friendly Responsive Design — Optimized for smartphones with touch-friendly controls and adaptive layouts.
- Google Maps Navigation Links — Direct "Navigate" links open destinations in Google Maps for turn-by-turn guidance.
- Geolocation Support — The driver's current GPS position is shown on the map as a pulsing indicator.
- Map Controls — Standard Mapbox GL controls embedded in every portal map: zoom buttons, a compass/rotation control, and the geolocation button. Positioned on the left side so they don't conflict with the Route Info overlay.
- Connection Status Indicator — A status banner on the map overlay cycles through "Checking connection", "No Internet" (with a retry button), and a loading spinner while tiles are fetching — so drivers immediately know why the map isn't rendering instead of seeing a blank or frozen view. The banner disappears once the map is fully loaded and connected.
- Route Info Overlay — A collapsible panel with total distance, duration, and a per-segment breakdown.
- Alternative Routes Panel — When the backend toggles on Enable Route Alternative (Directions API only), the map overlay shows an Available Routes panel listing Route 1 (primary) and any alternatives (Route 2, Route 3) with their distance and duration. Alternatives appear as dashed lines on the map; selecting one swaps it to the full solid primary style and updates the overlay totals and segment breakdown to match.
- Turn-by-Turn Step Instructions — When the backend toggles on Enable Route Steps (both APIs supported), each segment row in the Route Info overlay gets a Steps button that opens a dialog listing every maneuver for that leg with a direction icon, instruction text, and distance — so drivers can follow turn-by-turn guidance without leaving the portal or opening a separate navigation app.
- Segment Maps Directions — Each segment row in the Route Info overlay has a Maps button that opens Google Maps driving directions for that specific leg — from the segment's start stop to its end stop — in a new browser tab, with origin and destination coordinates prefilled. Drivers get live Google Maps navigation for any single leg without manual address entry.
- Waze Segment Navigation — Each segment row in the Route Info overlay also has a Waze button alongside the Maps and Steps buttons. Tapping it opens Waze in a new browser tab prefilled with the segment's start and end coordinates — useful for drivers who prefer Waze's community-based traffic and hazard reporting.
- Animated Segment Highlighting — Clicking a segment plays animated arrows along that portion of the route for easy identification.
- Dark/Light Theme Toggle — Drivers can switch themes via the navbar; preference persists across sessions.
- Automatic Chatter Logging & Location Map — Every driver action is posted to the route chatter as a structured message with a bold heading and bullet-list details. For stop updates, the message includes the status change, driver notes, any delivery photo, and any customer signature. The server also downloads a Mapbox Static Image showing the driver's GPS position (red pin) and stop location (green pin) and attaches it to the message — providing geographic proof of each action. If GPS is unavailable, a note is added instead of a map image.
- Activity Tracking — Routes leverage Odoo's activity mixin so dispatchers can schedule follow-up activities (calls, meetings, to-dos) directly on the route record, alongside the chatter.
- Backend Quick-Access Buttons — "Preview" opens the tabular route detail page, "Route Map" opens the interactive portal map for the route, and "Portal Dashboard" opens the route overview — all three with review mode automatically enabled.
- Route Not Found Page — A user-friendly error page with a link back to the overview, shown when a route URL is invalid or inaccessible.
- Automatic Token Generation — On module installation, a post-install hook automatically creates UUID access tokens for any existing routes that don't have one — so every route is portal-ready immediately, with no manual setup.
- Route State Visibility — Portal filters routes by state so drivers only see what they can act on: Confirmed, In Progress, or Done. Draft and Cancelled routes never appear in the portal, reducing clutter and confusion.
- State Transition Validation — Server-side validation ensures routes can only move to valid next states: Confirmed → In Progress only, In Progress → Done only, and Done requires every stop to be completed or cancelled. Invalid transitions are rejected with clear error messages.
- Review Mode Protection — Server-side checks reject all driver-action requests (start route, complete route, add note) when the session's review-mode flag is on — so route planners can't accidentally trigger driver actions while previewing.
Use Cases & Benefits
Drivers Without Backend Access
The portal is designed for users who shouldn't (or don't need to) log into the Odoo backend — just a portal account and a browser is enough.
Real-Time Dispatch Visibility
As drivers update stops in the field, status changes sync back to Odoo immediately. Dispatchers can track progress without phone calls or chase-up messages.
Complete Audit Trail
Every action is posted to the chatter with delivery photos, customer signatures, and a GPS-tagged Mapbox map image — giving operations teams photo and signature proof for every stop with location verification at each action.
Safe Preview for Planners
Review mode lets route planners verify the driver experience — map, stops, notes, instructions — without accidentally triggering a status change.
Delivery Proof on Every Stop
Attach a photo, collect a customer signature, and get a GPS-tagged location map in the chatter for every stop — all from the driver's phone, no extra apps required. Ideal for dispute resolution and proof-of-delivery workflows.
Mobile-First in the Field
Responsive layout, touch-friendly controls, geolocation, and a dark theme make the portal genuinely usable on a phone in real working conditions.
Shareable Secure Links
Token-based URLs let dispatchers send a driver straight to their route — no navigating through menus — while record-level security ensures drivers only ever see their own assignments.
Website Portal Pinpoint Address — Mapbox GL
Adds a Pinpoint button to the portal "My Address" page, letting customers visually confirm or adjust their exact GPS location on an interactive Mapbox map — no backend access or manual coordinate entry required.
Overview
This module extends the portal "My Address" form with an interactive Mapbox map dialog. Customers click the Pinpoint button and are taken straight to their geocoded address, with a draggable marker they can drop on their precise location. On first open, the address is automatically geocoded and the marker placed at the best-matching result. When coordinates already exist, the map opens centred on them. Saving writes latitude, longitude, and a localization date back to the partner record, feeding accurate GPS data directly into route planning and dispatch.
Key Features
- Pinpoint Button — Opens the map dialog. Shows as amber ("Set Location on Map") when no location is set yet, and green ("Update Location on Map") when coordinates already exist.
- Auto-Geocoding on Open — On first open, the partner's address is automatically geocoded and the marker placed at the best-matching result — no manual map navigation needed.
- Geocoding Fallback — If the full address returns no result, the module retries with a simplified query (city, state, and country only) to ensure the map always opens near the right area.
- Draggable Marker — A red marker can be dragged to the precise location. The map re-centres after each drag for easy fine-tuning.
- Saves on Confirm — Clicking Save writes the marker's latitude, longitude, and a
date_localizationtimestamp back to the partner record. - Pre-Filled Existing Location — If coordinates already exist, the map opens centred on them with the marker already placed — making updates quick and contextual.
- Ownership Validation — Server-side checks ensure portal users can only update addresses within their own commercial group (their own address and child delivery/invoice addresses).
- Mobile-Friendly Design — The map dialog is fully responsive and touch-friendly for customers accessing the portal from smartphones.
Use Cases & Benefits
Customers Set Their Own Location
Backend geocoding can only do so much with an incomplete or ambiguous address string. This module lets customers visually confirm or correct their own GPS location from the portal — improving accuracy for deliveries, service visits, and route planning without any intervention from your team.
Fewer Failed Deliveries
A visually confirmed pin is more reliable than a geocoded address estimate. Fewer wrong-location deliveries means fewer redeliveries, lower costs, and higher customer satisfaction.
Feeds Directly into Route Planner
Coordinates saved through the portal flow straight into the Route Planner's stop list — so routes built from customer addresses benefit immediately from the improved GPS data, with no manual sync or copy-paste required.
Reduces Customer Service Load
Empowering customers to fix their own location data removes a common back-and-forth from your support queue — no more "your driver couldn't find us" messages that require manual address correction.
Intuitive for Non-Technical Users
Auto-geocoding places the marker near the right area automatically, and a single drag completes the correction. No coordinates, no forms — customers just move a pin and confirm.
Built on Odoo's Portal Framework
Integrates with the standard Odoo portal using native security patterns — ownership validation, commercial-group access rules, and portal auth. No custom development needed to add it to your customer-facing site.
Available Extensions
The Route Planner Suite is also the foundation for two specialized extension products. Each adds focused functionality on top of the six modules included here, and is sold as its own product with its own documentation page.
Delivery Route Planner with Mapbox
Adds 2 modules · Inventory batch transfer integration + delivery portal
Bridges Odoo Inventory batch transfers with the Route Planner. One-click delivery route creation, smart stop grouping by customer address, weight/volume tracking per stop, and a PDF delivery manifest in the driver portal.
View Delivery Route Planner →Contacts Route Planner with Mapbox
Adds 3 modules · Contacts map view + route creation wizard
Turns the Contacts application into a map-first customer browser. Select customers on the map and generate a complete customer-visit route in a single action — ideal for field sales, account management, and outreach operations.
View Contacts Route Planner →For the complete Mapbox-powered Odoo experience — including a GeoJSON geometry view, a drawing widget, and portal address pinpointing — see the Mapbox Addons Suite (14 modules total).