Mapbox Addons Suite for Odoo
The complete Mapbox GL JS integration for Odoo — from foundation configuration and a reusable map view framework through three turnkey applications: multi-stop route planning with driver portal, delivery dispatch from inventory batch transfers, and contact-to-route geography. Fourteen modules, three layers, one cohesive product family.
Product Overview
The Mapbox Addons Suite is a complete Mapbox GL JS integration for Odoo 19.0 — a layered family of 14 modules that brings interactive Mapbox maps, geocoding, geometry drawing, multi-stop route planning, delivery dispatch, driver portals, and contact geography into a single coherent product.
The suite is organized as three independently-useful tiers: a foundation layer that centralizes Mapbox configuration and provides reusable map view types and drawing widgets; an application layer of turnkey business applications built on that foundation; and three customer-facing portal modules that close the loop from planning to the field. Install the whole suite for the full end-to-end experience, or pick only the modules you need — dependencies are resolved automatically.
The Problem It Solves
Multi-location operations in Odoo create real workflow needs: dispatchers need to verify multi-stop routes before sending drivers out; field drivers need a mobile-friendly view of their day's work; delivery teams build routes from inventory batch transfers; sales and outreach teams want a geographic picture of their customers; portal users want to confirm their exact delivery address; and developers need a stable foundation to add map-based features to custom modules. The Mapbox Addons Suite addresses all of those workflows inside Odoo, 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 route planning modules fetch per-segment distance and duration directly from Mapbox and save them to each stop automatically.
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, delivery photo attachment, customer signature capture, turn-by-turn navigation, and GPS-verified location maps in the chatter — no backend access required.
Delivery Planning by Hand
Building a multi-drop delivery route from a batch transfer means manually listing each stop, looking up addresses, and grouping pickings by customer. The delivery integration generates a complete route with stop grouping, weight/volume aggregation, and full validation in a single click.
Customers Without a Pin
Address strings alone don't tell you where the delivery driver should actually stop. The portal pinpoint module lets customers drop a marker on their exact location themselves — reducing failed deliveries and after-the-fact address cleanup.
CRM Without Geography
A list of contacts tells you who, not where. The Contacts map view turns the standard application into a geographic browser with clustering, custom marker colors, auto-geocoding, and an action that creates customer-visit routes from a selection.
Reinventing Map Plumbing
Every team that wants a custom map view, drawing widget, or geocoding feature in Odoo ends up rebuilding the same plumbing. The foundation layer provides reusable view types, a drawing widget, base OWL components, and centralized configuration so developers focus on their domain, not on map setup.
One Suite, One Configuration
Every map-related capability the suite covers — visualization, route planning, dispatch, contact geography, portal pinpointing — shares the same Mapbox access token, settings, and Odoo data model. Configure once, use everywhere across your Odoo instance, with no cross-system data sync to maintain.
Already Available as Standalone Sub-Products
The suite includes three pre-packaged sub-products that group modules around a specific buyer use case. Each is also sold and documented as its own product page. Choose a sub-product if you need a focused capability; choose the full Mapbox Addons Suite if you want the complete map-enabled Odoo experience plus everything else (drawing widgets, GeoJSON view, portal address pinpointing).
Route Planner with Mapbox
6 modules · Foundation + Route Planner application + driver portal
Multi-stop route planning for any team that dispatches drivers, sales reps, or field technicians. Dual-API routing (Directions or Optimization), route exclusions, alternative routes, turn-by-turn steps, and a mobile-friendly driver portal.
View Route Planner Suite →Delivery Route Planner with Mapbox
8 modules · Route Planner Suite + delivery 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
9 modules · Route Planner Suite + Contacts geography + route 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 →The Mapbox Addons Suite includes everything in all three sub-products, plus the standalone modules web_view_mapbox_gl_draw, web_widget_mapbox_gl, and website_portal_pinpoint_address_mapbox_gl that don't appear in any sub-product page on their own.
Mapbox GL Infrastructure for Odoo
Six modules that centralize Mapbox configuration, register new Odoo view types, provide a reusable drawing widget, and supply the building blocks every application in the suite is built on. Install them on their own to enable custom development on top of Mapbox, or let the application modules pull them in automatically as dependencies.
Base Mapbox GL JS
base_mapbox_gl
The single dependency of every other module. Manages the Mapbox access token, provides all required Mapbox libraries (Mapbox GL JS, Mapbox GL Draw, Search Box SDK, Turf.js), 10 preset map styles plus custom Mapbox Studio support, 8 map projections, lighting and theme controls, 35+ language support, geocoding, location search, and a base OWL component class for custom map widgets.
Web View Base Mapbox GL
web_view_base_mapbox_gl
Registers mapbox_gl as a new Odoo view type with the full MVC stack — controller, model, renderer, and record sidebar. Provides hover popups, record ↔ map synchronization, grouping with color-coded markers, multi-selection (box-zoom and Shift+Click), pager and action menu integration, and debounced rendering. All map view modules extend this base.
Web View List with Mapbox GL
web_view_list_with_mapbox_gl
A list_with_mapbox_gl widget for One2many/Many2many fields that renders a split-screen editable stop list alongside an interactive map. Automatic route calculation via Directions or Optimization API, drag-and-drop reordering, per-stop distance and duration auto-saved, route exclusions, alternative routes, turn-by-turn steps, GeoJSON export, and one-click Google Maps share.
Web View Mapbox GL Geolocate
web_view_mapbox_gl_geolocate
A mapbox_gl_geolocate view type for records with separate latitude and longitude fields. Smart overlap separation (~10 m circle with dotted connection lines), optional heatmap layer for density at zoom 0–9, optional clustering with expand-on-click bubbles, color-coded markers, and human-readable N/S E/W coordinate display.
Web View Mapbox GL Draw
web_view_mapbox_gl_draw
A mapbox_gl_draw view type for records that store GeoJSON geometry data. Renders all standard GeoJSON types (polygons, multi-polygons, lines, points), calculates area, perimeter, and length using Turf.js geodesic algorithms with unit-adaptive formatting (cm/m/km, m²/ha/km²), supports color coding per feature, and includes a SearchableJson field type with PostgreSQL JSONB operators for filtering.
Web Widget Mapbox GL
web_widget_mapbox_gl
A mapbox_gl_draw_geojson form field widget for drawing and editing GeoJSON geometries directly inside a form view. Points, lines, polygons, circles, rectangles, polygon cut, edit and delete, full undo/redo history (20 steps, Ctrl+Z / Ctrl+Y), live area/length measurements while drawing with per-segment labels, 2D/3D toggle, geocoding search, GeoJSON import/export, and explicit save flow.
Turnkey Applications Built on the Foundation
Eight modules that consume the foundation framework to deliver specific business functionality — route planning, delivery dispatch, driver portal, contact geography, and customer-facing portal tools. Each application module never re-implements map rendering or library loading; it builds on the foundation modules and stays focused on its own domain.
Route Planner
route_planner
The base Route Planner application — no Mapbox dependency. Provides the Route Planner menu, route and stop models, five-state lifecycle (Draft → Confirmed → In Progress → Done / Cancelled), configurable route types with optional vehicle/driver/date enforcement, per-stop service duration, fleet integration, built-in TSP algorithms (nearest-neighbor + 2-opt), chatter, calendar view, and role-based access control.
Route Planner — Mapbox GL
route_planner_mapbox_gl
Extends the Route Planner with Mapbox map visualization and API-based routing. Embeds the list-plus-map widget on the route form, supports both Directions API (up to 24 stops, fixed order, route exclusions) and Optimization API (up to 11 stops, optimal order), Optimize Route action for both APIs, optional alternative routes panel, optional turn-by-turn steps, round-trip mode, GeoJSON export, and one-click Google Maps share.
Website Route Planner — Mapbox GL
website_route_planner_mapbox_gl
Mobile-friendly driver portal built on Odoo's portal framework. Kanban dashboard grouped by route state with route-type badges, interactive Mapbox route map, alternative routes panel, expandable turn-by-turn steps, per-segment Google Maps and Waze links, geolocation tracking, stop status updates with delivery photo attachment and customer signature capture, Start/Complete Route actions, review mode for planners, secure token-based URLs, record-level driver isolation, dark/light theme toggle, and automatic chatter logging with GPS-tagged Mapbox location images.
Delivery Route Planner — Mapbox GL
delivery_route_planner_mapbox_gl
Bridges Odoo Inventory batch transfers with the Route Planner. One-click delivery route creation, automatic Delivery route type with enforced vehicle/driver/date, smart stop grouping (multiple pickings to same address → single stop), prerequisite validation, weight and volume per stop, location address hierarchy resolution, batch ↔ route auto-cancellation, duplicate prevention with unique constraint, and full audit trail on both batch and route.
Website Delivery Route Planner — Mapbox GL
website_delivery_route_planner_mapbox_gl
Extends the driver portal for routes linked to a batch transfer. Inline PDF Delivery Manifest button (route cards, route detail page, and map view), batch transfer reference on the detail page, Transfer column in the stops table, and picking document references shown in the interactive map sidebar. All delivery-specific UI is hidden when a route has no linked batch, so portal routes without batches display unchanged.
Contacts Mapbox GL
contacts_mapbox_gl
Adds a mapbox_gl Map view to the Odoo Contacts application. Contact avatars in both sidebar list and marker popup, per-contact configurable marker color (color picker on the contact form), always-on marker clustering, overlap separation for shared addresses, box-zoom and Shift+Click multi-selection, and a scheduled task that auto-geocodes contacts with addresses but missing coordinates every 12 hours.
Contacts Route Planner — Mapbox GL
contacts_route_planner_mapbox_gl
A Route Planner action on the Contacts list and map views. Select contacts → click action → a wizard opens with selected contacts pre-loaded as waypoints in selection order. Customer Visit route type auto-applied (30 min service duration, no required vehicle/driver/date), drag-and-drop waypoint reorder, geolocation validation with auto-geocode helper, min 2 / max 25 stops, role-controlled access.
Website Portal Pinpoint Address — Mapbox GL
website_portal_pinpoint_address_mapbox_gl
Adds an interactive Mapbox map to the portal "My Address" form so customers can visually pinpoint their exact GPS location. Pinpoint button changes color (amber when no location is set, green when one exists), auto-geocodes on first open with fallback to city/state/country, draggable red marker, save on confirm writes latitude/longitude and date_localization back to the partner. Ownership validation keeps portal users limited to their own commercial-group addresses.
Capabilities at a Glance
The 14 modules combine to deliver these end-to-end capabilities. Each capability draws on one or more modules — the relevant technical names are listed under each block.
Centralized Mapbox Configuration
- Single Access Token — Manage your Mapbox access token from one place in Odoo Settings; every map across every module uses it automatically.
- 10 Preset Styles & 8 Projections — Standard, Satellite, Streets, Outdoors, Light/Dark, Navigation Day/Night, OSM, plus custom Mapbox Studio URLs; Globe 3D, Mercator, Equal Earth, and six more.
- 35+ Languages — Display map labels in the language of your choice, globally or per map.
- On-Map Style Switcher, 2D/3D Toggle, Fly-To-Zoom — Standard map controls embedded in every Mapbox-powered view across the suite.
- Offline Detection & Auto-Retry — Maps gracefully handle connectivity loss and automatically recover.
Reusable Map View Framework
- New Odoo View Types —
mapbox_gl,mapbox_gl_geolocate,mapbox_gl_draw, andlist_with_mapbox_gldeclared via standard XML view definitions. - Record ↔ Map Sync — Click a sidebar record to highlight its marker; click a marker to surface the record in the sidebar.
- Multi-Selection — Box-zoom (Shift-drag) and Shift+Click work across every map view module; cluster bubbles expand into their underlying records on selection.
- Native Odoo Behaviors — Full integration with Odoo's search bar, filters, group-by, pager, and action menus on every map view.
- Smart Overlap Handling — Markers at identical coordinates spread in a ~10 m circle with dotted connection lines visible at zoom 17+.
- Heatmap & Clustering — Optional density visualization (zoom 0-9) or count-bubble clustering up to zoom 14 on geolocate views.
- Performance — Batched marker processing (100/batch), throttled mouse events (100 ms), debounced rendering, and result caching.
Drawing & Territory Mapping (GeoJSON)
- GeoJSON View — Display polygons, multi-polygons, lines, and points with multi-layer styling (fill, stroke, point), color coding, and bounds-fitting animation.
- Drawing Widget — Points, lines, polygons, circles, rectangles, polygon cut, edit and delete — all driven by an in-form toolbar with explicit save flow.
- Live Measurements — Real-time area or length overlay follows the cursor while drawing; per-segment length labels at each edge midpoint; toggle area/perimeter labels on completed shapes.
- Unit-Adaptive Formatting — Smart metric unit selection: cm/m/km for length, m²/ha/km² for area, scaled to feature size.
- Undo/Redo History — Up to 20 steps via Ctrl+Z / Ctrl+Y or toolbar buttons.
- GeoJSON Import/Export — Upload existing GeoJSON files or download all drawn features as
.geojson. - Searchable JSON Field — PostgreSQL JSONB operators (
json_eq,json_ne,json_contains) for filtering by GeoJSON property values.
Multi-Stop Route Planning & Optimization
- Structured Route Lifecycle — Five states (Draft, Confirmed, In Progress, Done, Cancelled) with validated transitions.
- Configurable Route Types — Type-level rules for required fields (vehicle, driver, date) and default service duration per stop.
- Dual-API Routing — Directions API (manual order, up to 24 stops, route exclusions) or Optimization API (Mapbox-computed order, up to 11 stops or 10 with round-trip).
- Optimize Route Action — Local TSP optimization (Matrix API + nearest-neighbor + 2-opt) available in Draft state for both APIs.
- Per-Segment Distance & Duration — Fetched from Mapbox and auto-saved on every stop; totals at the bottom of the list.
- Service Duration per Stop — Tracks expected on-site time separately from travel time; default from route type, overridable per stop; rolls into Estimated Arrival.
- Route Exclusions — Avoid tolls, highways, ferries, unpaved roads, or cash-only tolls (Directions API).
- Alternative Routes & Turn-by-Turn Steps — Optional toggles on the route to fetch alternative paths and step-by-step maneuver instructions; surfaced in the driver portal.
- Round-Trip Mode — Optimization API option to close the loop back to the departure point.
- GeoJSON Export & Google Maps Share — Hand off routes to other tools with a single click.
Driver Portal & Field Execution
- Mobile-First Driver Portal — Built on Odoo's portal framework; responsive design with touch-friendly controls and a route-state kanban dashboard.
- Route Type Badge — Route category visible on each kanban card for quick identification.
- Interactive Route Map — Numbered stop markers, animated directional arrows, segment-by-segment Route Info overlay with totals.
- Alternative Routes Panel — When enabled, drivers can switch between up to three route variants on the map; dashed lines for alternatives, solid for the active route.
- Turn-by-Turn Instructions — When enabled, each segment expands to show step-by-step maneuvers with direction icons, instruction text, and distance.
- Per-Segment Navigation Links — Open any leg in Google Maps or Waze with one tap for in-car turn-by-turn voice guidance.
- Geolocation Tracking — Driver's current GPS position shown on the map with heading direction.
- Stop Status & Notes — Mark stops as Arrived, Done, or Cancelled/Skipped with required notes for skipped stops; syncs back to Odoo immediately. The stop dialog also supports delivery photo attachment (camera or gallery) and a Save & Sign option that opens a customer signature canvas immediately after saving the note.
- Delivery Photo Attachment — Attach a photo (camera or gallery, max 5 MB) to any stop note; stored as an attachment on the route and included in the chatter message.
- Customer Signature Capture — Save & Sign opens a full-screen touch canvas; the trimmed signature PNG is attached to the chatter alongside any delivery photo. Drivers can skip if the customer is unavailable.
- Chatter Location Map — Every driver action triggers the server to download a Mapbox Static Image of the driver's GPS position (red pin) and stop location (green pin), attached to the chatter message as geographic proof of each action.
- Start & Complete Route — One-click route lifecycle actions with automatic chatter logging.
- PDF Delivery Manifest — (Delivery only) Inline PDF report of the linked batch transfer, accessible from route cards, detail page, and map view.
- Picking References per Stop — (Delivery only) Transfer column in the stops table and barcode-icon references in the map sidebar.
- Review Mode — Route planners can preview the portal exactly as drivers see it, with all driver actions safely disabled.
- Secure Token-Based URLs — Unique UUID per route for direct linking; record-level security keeps drivers to their own routes.
- Dark/Light Theme Toggle — Persisted across sessions via localStorage.
Delivery Dispatch from Inventory
- One-Click Route Creation — A button on in-progress batch transfers generates a complete delivery route with stops pre-filled, in seconds.
- Smart Stop Grouping — Multiple pickings to the same customer address merge into a single stop with aggregated weight and volume.
- Prerequisite Validation — Blocks route creation if driver/vehicle are missing, addresses lack GPS, or pickings come from multiple source locations without a Dock.
- Location Address Hierarchy — Resolves departure address via Dock → pickings' shared source location → parent location chain; Address field added to every stock location.
- Weight & Volume per Stop — Aggregated from picking lines using the configured units of measure.
- Auto-Assignment — Vehicle, driver, responsible user, scheduled date, and description copied from batch to route.
- Lifecycle Sync — Cancelling a batch automatically cancels its associated route; one batch can have at most one active route (enforced at app and DB levels).
- Bidirectional Traceability — Smart buttons and computed fields link batch transfers, route stops, and individual pickings; audit events logged in both chatters.
Contact Geography & Route from Selection
- Map View in Contacts — Dedicated Map view alongside list/kanban/form, with contact avatars in sidebar and popup, formatted address in sidebar, custom marker colors per contact.
- Marker Clustering & Overlap Separation — Always-on clustering at low zoom levels; contacts at identical addresses spread in a ~10 m circle with dotted connection lines at zoom 17+.
- Multi-Selection — Shift-click individual contacts or Shift-drag a rectangle to select groups; cluster bubbles inside the selection expand into their underlying contacts (up to 100 per cluster).
- Automatic Geocoding — A scheduled task runs every 12 hours to auto-assign coordinates to contacts that have an address but no GPS.
- Route from Contact Selection — Select contacts → click Action → Route Planner → a wizard opens with selected contacts pre-loaded as waypoints. Customer Visit route type applied automatically (30 min service duration, optional vehicle/driver/date).
- Geolocation Validation — Warning banner with names of contacts that have missing or duplicate coordinates; built-in Geolocalize button auto-geocodes them; route creation blocked until resolved.
- Min/Max Stop Enforcement — Minimum 2 stops, maximum 25 (Mapbox Directions API limit).
Portal Address Pinpointing
- Pinpoint Button on My Address Form — Amber ("Set Location on Map") when no location is stored, green ("Update Location on Map") when one already exists.
- Auto-Geocoding — On first open, the partner's address is automatically geocoded and the marker placed at the suggested location; fallback to city/state/country if the full address returns no result.
- Draggable Marker — A red marker can be dragged to the exact location; the map re-centers after each drag.
- Saves on Confirm — Clicking Save writes latitude, longitude, and
date_localizationto the partner record. - Ownership Validation — Portal users can only update their own address and child addresses (delivery, invoice) within their commercial group.
Why Choose the Full Suite
The Mapbox Addons Suite isn't just a bundle — it's an integrated product family where every module shares the same foundation, the same configuration, and the same design language.
One Token, Every Map
Configure your Mapbox access token once. Every map across every module — backend, portal, widget — uses it automatically. No per-module setup, no duplicated credentials.
End-to-End Dispatch Workflow
From inventory batch transfer or contact selection, through Mapbox route optimization, to a mobile-friendly driver portal — one product family covers the whole loop inside the same Odoo instance.
Reusable for Custom Development
The view framework, drawing widget, and base OWL components are first-class infrastructure. Build your own map-enabled Odoo modules on top without re-implementing Mapbox plumbing.
Mobile-First for the Field
The driver portal is built for smartphones first: responsive layout, touch-friendly controls, geolocation, dark theme, and per-segment Google Maps / Waze integration for real-world navigation.
Geography-Aware CRM
The Contacts map view, auto-geocoding scheduled task, and route-from-selection wizard turn the standard Contacts application into a map-first customer browser for sales and field teams.
Customer-Facing Portal Tools
Portal address pinpointing lets your customers set their own delivery coordinates — reducing failed deliveries and removing manual cleanup from your team's backlog.
Native Odoo Patterns
Standard view types, mail.thread, mail.activity.mixin, record rules, role-based ACLs — everything follows Odoo conventions and integrates with existing workflows.
One Suite, One Configuration
Every map-related capability the suite covers — visualization, route planning, dispatch, contact geography, portal pinpointing — shares the same Mapbox access token, settings, and Odoo data model. Configure once, use everywhere.
Modular & Independently Useful
Install just the foundation layer to enable custom map development. Add a single application module for a focused capability. Or install the full suite — dependencies resolve automatically.
Open Source
Licensed under LGPL-3 — inspect the code, audit the data flow, contribute fixes upstream, or fork for in-house customization.
What's in the Bundle
Fourteen modules total, organized into two tiers. Modules are listed in install/dependency order — installing any module auto-installs its prerequisites, so picking a leaf module pulls in everything it needs.
Tier 1 · Foundation Layer (6 modules)
base_mapbox_gl— Mapbox configuration, geocoding, location search, and shared UI componentsweb_view_base_mapbox_gl— Newmapbox_glOdoo view type with sidebar, grouping, and selectionweb_view_mapbox_gl_geolocate— Lat/lng coordinate map view: clustering, heatmap, overlap handlingweb_view_mapbox_gl_draw— GeoJSON geometry map view with Turf.js measurements and SearchableJsonweb_view_list_with_mapbox_gl— Split-screen list-plus-map widget for ordered location fieldsweb_widget_mapbox_gl— Form field widget for drawing and editing GeoJSON geometries
Tier 2 · Application Layer (8 modules)
route_planner— Base Route Planner application: lifecycle, stops, route types, fleet integration, TSP algorithmsroute_planner_mapbox_gl— Mapbox map visualization and dual-API routing on the route formwebsite_route_planner_mapbox_gl— Mobile-friendly driver portal: interactive route map, stop status updates, delivery photo attachment, customer signature capture, GPS-tagged chatter location mapsdelivery_route_planner_mapbox_gl— Batch transfer → delivery route bridge with stop grouping and validationwebsite_delivery_route_planner_mapbox_gl— Driver portal extension: PDF manifest, picking references per stopcontacts_mapbox_gl— Map view for Odoo Contacts: avatars, custom marker colors, auto-geocodingcontacts_route_planner_mapbox_gl— Route Planner action on Contacts: wizard-based route creation from selected contactswebsite_portal_pinpoint_address_mapbox_gl— Portal "My Address" map dialog with auto-geocoding and draggable marker
All modules target Odoo 19.0 and use Mapbox GL JS v3.22.0, Mapbox GL Draw v1.5.1, and Turf.js v7.3.5. A public Mapbox access token (pk.) is required — sign up free at account.mapbox.com.