Shipment Advice Planner Toursolver
This module extend the shipment advice planner engine to add a new planning method based on geo-localization. It uses the GEOCONCEPT solution called TourSolver to plan the shipment advices according to the location of the customers by calculating the best route according to the available resources.
auto_awesome What this module does
AI-generated from the code · Odoo 16.0Plan shipment advices using TourSolver geo-optimization: send delivery stops to the TourSolver service, retrieve the optimized routes, and automatically create shipment advices with ranked stops and travel statistics.
This module adds a new planning method called TourSolver to the shipment advice planner. When you plan shipments, you can choose this method and select the delivery resources to consider. Odoo then creates a TourSolver task that sends the delivery addresses, time windows, and resource information to the external TourSolver service.
From a shipment advice, a button "Create TourSolver Task" lets you create a task for that advice. The task screen shows its status (draft, in progress, success, done, error, cancelled) and buttons to send the request, check the status, get the result, cancel, and show the related shipment advices. A scheduled job automatically synchronizes tasks: it sends draft tasks, checks in-progress ones, and retrieves results for successful ones.
Once the result is received, the module creates shipment advices per resource and ranks the pickings according to the optimized stop order. The shipment advice form gets a "Toursolver" tab showing the resource, the task, and statistics such as number of tours, number of visits, delivery cost, additional cost, total cost, travel distance, travel duration, start and end times, and total time.
On customers, you can define delivery windows (with weekdays and time ranges) and a specific delivery duration. If no window is set, the backend default window is used. The backend configuration (URL, API key, default delivery duration, loading time, penalties, timeouts) is set in Settings and on the TourSolver Backend records.
Depends on
Required by other modules
Models and fields (11)
- res.company · extends an existing modeltoursolver_backend_id (TourSolver Backend)
- res.partner · extends an existing modeltoursolver_delivery_duration, toursolver_delivery_window_ids (Delivery windows)
- stock.picking · extends an existing modeltoursolver_task_id, toursolver_shipment_advice_rank (Toursolver Rank)
- shipment.advice · extends an existing modeltoursolver_task_id (Toursolver Task), toursolver_nbr_tours (Number of Tours), toursolver_nbr_visits (Number of visits), toursolver_total_cost, toursolver_resource_id (Toursolver Resource), toursolver_delivery_cost, toursolver_travel_end_dt (Travel End Time), toursolver_additional_cost, toursolver_travel_distance, toursolver_travel_duration, toursolver_travel_start_dt (Travel Start Time), toursolver_travel_total_time, toursolver_travel_distance_uom (Distance UoM), is_create_toursolver_task_allowed, toursolver_travel_distance_uom_name (Distance unit of measure label)
- toursolver.task · new modeldate, name, state, dock_id, task_id (Toursolver task id), picking_ids (Pickings), result_data, result_json, request_data, warehouse_id, toursolver_status (TourSolver status), shipment_advice_ids (Shipment Advices), result_data_filename, delivery_resource_ids (Delivery resources), request_data_filename, toursolver_backend_id (TourSolver Backend), toursolver_error_message
- toursolver.backend · new modelurl, name, active, api_key, duration (Optimization process max duration), organization, read_timeout, definition_id, loading_duration (Fixed initial loading time), delivery_duration (Fixed time spent delivering a customer), connection_timeout, rqst_orders_properties (Orders Properties), rqst_options_properties (Options), delivery_window_disabled, resource_default_work_penalty (Resource fixed cost working/hour), resource_properties_definition (Resource Properties), resource_default_travel_penalty (Resource fixed cost travelling/hour), partner_default_delivery_window_end, partner_default_delivery_window_start
- res.config.settings · extends an existing modeltoursolver_backend_id
- toursolver.resource · new modelname, active, partner_id (Contact), resource_id (ResourceId), resource_properties (Properties), toursolver_backend_id (TourSolver Backend), use_delivery_person_coordinates_as_end
- shipment.advice.planner · extends an existing modeltoursolver_task_id (Toursolver Task), delivery_resource_ids (Delivery resources), toursolver_resource_id (Toursolver Resource), shipment_planning_method
- toursolver.delivery.window · new modelpartner_id
- toursolver.request.props.definition · new modelorders_definition, options_definition
Text generated by AI (DeepSeek) from reading the Odoo 16.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 16.0
Confirmed on 2026-11-03 in branch 16.0 of OCA/stock-logistics-transport.
terminal Installation and usage
OCA documentation · Odoo 16.0Configuration
Source · Odoo 16.0Before configuring this module, you must configure your account and your resources on the TourSolver website. Then you should be able to get your api key and paste it in the default backend. You can access to backends list under the setting menu of the inventory module.
The second step is to create the resources. You can add the properties you want TourSolver to use in its calculation of the best route.
For advanced planning, you can define your customer delivery windows. It will be considered in TourSolver calculation.
For more details about the properties you can use, please consult TourSolver documentation
Usage
Source · Odoo 16.0In the shipment planner you will see a new option added to the planning methods. If you select TourSolver, a TourSolver task per warehouse will be created for the pickings you want to plan.
The task will pass through different states by a dedicated cron and at the end of the process will create shipment advices according the returned result from TourSolver.
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.