| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/delivery-carrier |
| GIT | |
| GIT | https://github.com/OCA/delivery-carrier.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/delivery-carrier/tree/15.0/connector_routific |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Inventory |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, CarlosRoca13 |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/delivery-carrier |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:38 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - phone_validation |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
email_validator lxml |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
attribute_tree_view |
product.attribute.tree.routific.type | product.attribute | field | Inherits product.attribute_tree_view |
product_attribute_view_form |
product.attribute.form.routific.type | product.attribute | xpath | Inherits product.product_attribute_view_form |
project_creation_from_picking_view |
routific.project.creator.form | routific.project.creator | form | New |
res_partner_form_view |
res.partner.form | res.partner | xpath | Inherits base.view_partner_form |
routific_config_form_view |
routific.config.form | routific.config | form | New |
routific_config_tree_view |
routific.config.tree | routific.config | tree | New |
routific_project_driver_form_view |
routific.project.driver.form | routific.project.driver | form | New |
routific_project_form_view |
routific.project.form | routific.project | form | New |
routific_project_tree_view |
routific.project.tree | routific.project | tree | New |
view_driver_tree |
res.partner.driver.tree | res.partner | xpath | Inherits base.view_partner_tree |
view_picking_internal_search |
stock.picking.driver.search | stock.picking | xpath | Inherits stock.view_picking_internal_search |
vpicktree |
stock.picking.tree | stock.picking | field | Inherits stock.vpicktree |
is_routific_type
Boolean
string='Is routific type'
No public methods.
allowed_routific_type_ids
Many2many → product.attribute.value
comodel_name='product.attribute.value'
compute='_compute_allowed_routific_type_ids'
capacity
Integer
company_dependent=True
help='Keep as 0 for no control of capacity'
delivery_duration
Integer
string='Delivery duration (MIN)'
finish_at_start
Boolean
company_dependent=True
default=True
string='Finish route where start'
is_routific_driver
Boolean
company_dependent=True
string='Is driver'
partner_end_id
Many2one → res.partner
comodel_name='res.partner'
string='End location'
partner_start_id
Many2one → res.partner
comodel_name='res.partner'
string='Start location'
routific_driver_active
Boolean
company_dependent=True
compute='_compute_routific_active'
readonly=False
store=True
string='Driver active'
routific_end
Float
company_dependent=True
default=24.0
help="\n If the partner is a driver, this value shows the end work schedule.\n If it isn't it will show the end of the time that can receive a shipping.\n "
string='End'
routific_start
Float
company_dependent=True
help="\n If the partner is a driver, this value shows the start work schedule.\n If it isn't it will show the start of the time that can receive a shipping.\n "
string='Start'
routific_type_ids
Many2many → product.attribute.value
comodel_name='product.attribute.value'
domain="[('id', '=', allowed_routific_type_ids)]"
string='Types allowed'
speed
Float
default=1.0
help='Set the average speed of the driver\n being 0.1 the smallest and 2.0 the biggest'
get_address(self, address_format='', partner_id=False)
get_formatted_mobile_or_phone(self)
get_routific_data(self, config_id)
address_format
Text
default='%(street)s, %(city)s, %(state)s, %(zip)s, %(country)s'
required=True
string='Address format'
auto_balance
Boolean
string='Stops distributed across all drivers'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
default_duration
Integer
default=10
string='Default duration of stops'
default_load
Integer
default=1
string='Default load of stops'
get_endpoint
Char
default='https://api.routific.com'
required=True
args: 'Get URL'
max_driver_overtime
Integer
string='Maximum driver overtime'
max_stop_lateness
Integer
string='Maximum stop lateness'
name
Char
required=True
picking_type_id
Many2one → stock.picking.type
comodel_name='stock.picking.type'
required=True
string='Allowed operation type'
post_endpoint
Char
default='https://product-api.routific.com'
required=True
args: 'Post URL'
sequence
Integer
shortest_distance
Boolean
string='Optimize by shortest distance'
strict_start
Boolean
help='It forces the departure time of a driver to be at \u200bshift_start\u200b.\n The default is false\n '
string='Strict start'
token
Text
required=True
traffic
Float
default=1
help='Faster = 1.0 - Slower = 2.0'
string='Traffic estimation'
get_settings(self)
get_solution(self, project_id)
send_new_stops(self, routific_project_id, json_object)
send_project(self, json_object)
allowed_picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
compute='_compute_allowed_picking_ids'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
date
Date
default=<expr>
required=True
has_new_picking
Boolean
compute='_compute_has_new_picking'
json_retrieve
Text
json_send
Text
json_solution
Text
name
Char
copy=False
default='New'
readonly=True
required=True
picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
domain="[('id', '=', allowed_picking_ids)]"
required=True
string='Stops'
project_driver_ids
One2many → routific.project.driver
comodel_name='routific.project.driver'
default=_default_project_driver_ids
inverse_name='project_id'
required=True
string='Drivers'
routific_config_id
Many2one → routific.config
comodel_name='routific.config'
default=_default_routific_config_id
required=True
string='Settings'
routific_project_id
Char
string='Routific project id'
state
Selection
default='draft'
help="\n * The 'Draft' is used when a user create a new project\n\n * The 'Sent' is used when the project is sended to Routific\n "
readonly=True
selection=[('draft', 'Draft'), ('send', 'Sent')]
string='Status'
action_affected_picking_tree_view(self)
button_send_new_stops(self)
create(self, vals)
get_solution(self)
send_project(self)
write(self, vals)
config_id
Many2one → routific.config
comodel_name='routific.config'
default=_default_config_id
required=True
string='Settings'
date
Date
default=<expr>
required=True
string='Delivery date'
driver_ids
Many2many → res.partner
comodel_name='res.partner'
default=_default_driver_ids
domain=[('is_routific_driver', '=', True), ('routific_driver_active', '=', True)]
required=True
string='Drivers'
create_project(self)
driver_id
Many2one → res.partner
comodel_name='res.partner'
domain=[('is_routific_driver', '=', True), ('routific_driver_active', '=', True)]
required=True
string='Driver'
project_id
Many2one → routific.project
comodel_name='routific.project'
string='Project'
routific_driver_id
Char
No public methods.
driver_id
Many2one → res.partner
comodel_name='res.partner'
string='Driver'
routific_project_id
Many2one → routific.project
comodel_name='routific.project'
string='Routific project id'
routific_stop_id
Char
string='Routific stop id'
routific_stop_sequence
Integer
string='Sequence stop'
get_routific_data(self, config_id)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/delivery-carrier |
| GIT | |
| GIT | https://github.com/OCA/delivery-carrier.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/delivery-carrier/tree/13.0/connector_routific |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Inventory |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, CarlosRoca13 |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/delivery-carrier |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:16 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - phone_validation |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
email_validator lxml |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
attribute_tree_view |
product.attribute.tree.routific.type | product.attribute | field | Inherits product.attribute_tree_view |
product_attribute_view_form |
product.attribute.form.routific.type | product.attribute | xpath | Inherits product.product_attribute_view_form |
project_creation_from_picking_view |
routific.project.creator.form | routific.project.creator | form | New |
res_partner_form_view |
res.partner.form | res.partner | xpath | Inherits base.view_partner_form |
routific_config_form_view |
routific.config.form | routific.config | form | New |
routific_config_tree_view |
routific.config.tree | routific.config | tree | New |
routific_project_driver_form_view |
routific.project.driver.form | routific.project.driver | form | New |
routific_project_form_view |
routific.project.form | routific.project | form | New |
routific_project_tree_view |
routific.project.tree | routific.project | tree | New |
view_driver_tree |
res.partner.driver.tree | res.partner | xpath | Inherits base.view_partner_tree |
view_picking_internal_search |
stock.picking.driver.search | stock.picking | xpath | Inherits stock.view_picking_internal_search |
vpicktree |
stock.picking.tree | stock.picking | field | Inherits stock.vpicktree |
is_routific_type
Boolean
string='Is routific type'
No public methods.
allowed_routific_type_ids
Many2many → product.attribute.value
comodel_name='product.attribute.value'
compute='_compute_allowed_routific_type_ids'
capacity
Integer
company_dependent=True
help='Keep as 0 for no control of capacity'
string='Capacity'
delivery_duration
Integer
string='Delivery duration (MIN)'
finish_at_start
Boolean
company_dependent=True
default=True
string='Finish route where start'
is_routific_driver
Boolean
company_dependent=True
string='Is driver'
partner_end_id
Many2one → res.partner
comodel_name='res.partner'
string='End location'
partner_start_id
Many2one → res.partner
comodel_name='res.partner'
string='Start location'
routific_driver_active
Boolean
company_dependent=True
compute='_compute_routific_active'
readonly=False
store=True
string='Driver active'
routific_end
Float
company_dependent=True
default=24.0
help="\n If the partner is a driver, this value shows the end work schedule.\n If it isn't it will show the end of the time that can receive a shipping.\n "
string='End'
routific_start
Float
company_dependent=True
help="\n If the partner is a driver, this value shows the start work schedule.\n If it isn't it will show the start of the time that can receive a shipping.\n "
string='Start'
routific_type_ids
Many2many → product.attribute.value
comodel_name='product.attribute.value'
domain="[('id', '=', allowed_routific_type_ids)]"
string='Types allowed'
speed
Float
default=1.0
help='Set the average speed of the driver\n being 0.1 the smallest and 2.0 the biggest'
string='Speed'
get_address(self, address_format='', partner_id=False)
get_formatted_mobile_or_phone(self)
get_routific_data(self, config_id)
address_format
Text
default='%(street)s, %(city)s, %(state)s, %(zip)s, %(country)s'
required=True
string='Address format'
auto_balance
Boolean
string='Stops distributed across all drivers'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
default_duration
Integer
default=10
string='Default duration of stops'
default_load
Integer
default=1
string='Default load of stops'
get_endpoint
Char
default='https://api.routific.com'
required=True
args: 'Get URL'
max_driver_overtime
Integer
string='Maximum driver overtime'
max_stop_lateness
Integer
string='Maximum stop lateness'
name
Char
required=True
string='Name'
picking_type_id
Many2one → stock.picking.type
comodel_name='stock.picking.type'
required=True
string='Allowed operation type'
post_endpoint
Char
default='https://product-api.routific.com'
required=True
args: 'Post URL'
sequence
Integer
string='Sequence'
shortest_distance
Boolean
string='Optimize by shortest distance'
strict_start
Boolean
help='It forces the departure time of a driver to be at \u200bshift_start\u200b.\n The default is false\n '
string='Strict start'
token
Text
required=True
string='Token'
traffic
Float
default=1
help='Faster = 1.0 - Slower = 2.0'
string='Traffic estimation'
get_settings(self)
get_solution(self, project_id)
send_new_stops(self, routific_project_id, json_object)
send_project(self, json_object)
allowed_picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
compute='_compute_allowed_picking_ids'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
required=True
string='Company'
date
Date
default=<expr>
required=True
has_new_picking
Boolean
compute='_compute_has_new_picking'
json_retrieve
Text
json_send
Text
json_solution
Text
name
Char
copy=False
default='New'
readonly=True
required=True
string='Name'
picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
domain="[('id', '=', allowed_picking_ids)]"
required=True
string='Stops'
project_driver_ids
One2many → routific.project.driver
comodel_name='routific.project.driver'
default=_default_project_driver_ids
inverse_name='project_id'
required=True
string='Drivers'
routific_config_id
Many2one → routific.config
comodel_name='routific.config'
default=_default_routific_config_id
required=True
string='Settings'
routific_project_id
Char
string='Routific project id'
state
Selection
default='draft'
help="\n * The 'Draft' is used when a user create a new project\n\n * The 'Sent' is used when the project is sended to Routific\n "
readonly=True
selection=[('draft', 'Draft'), ('send', 'Sent')]
string='Status'
action_affected_picking_tree_view(self)
button_send_new_stops(self)
create(self, vals)
get_solution(self)
send_project(self)
write(self, vals)
config_id
Many2one → routific.config
comodel_name='routific.config'
default=_default_config_id
required=True
string='Settings'
date
Date
default=<expr>
required=True
string='Delivery date'
driver_ids
Many2many → res.partner
comodel_name='res.partner'
default=_default_driver_ids
domain=[('is_routific_driver', '=', True), ('routific_driver_active', '=', True)]
required=True
string='Drivers'
create_project(self)
driver_id
Many2one → res.partner
comodel_name='res.partner'
domain=[('is_routific_driver', '=', True), ('routific_driver_active', '=', True)]
required=True
string='Driver'
project_id
Many2one → routific.project
comodel_name='routific.project'
string='Project'
routific_driver_id
Char
string='Routific Driver Id'
No public methods.
driver_id
Many2one → res.partner
comodel_name='res.partner'
string='Driver'
routific_project_id
Many2one → routific.project
comodel_name='routific.project'
string='Routific project id'
routific_stop_id
Char
string='Routific stop id'
routific_stop_sequence
Integer
string='Sequence stop'
get_routific_data(self, config_id)