| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/e-commerce |
| GIT | |
| GIT | https://github.com/OCA/e-commerce.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/e-commerce/tree/18.0/product_template_multi_link |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Generic Modules |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), GRAP, ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), GRAP, ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | GitHub, Weblate, OCA-git-bot, oca-ci, thien |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/e-commerce |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:09 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - html_editor - account_payment - account - onboarding - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - payment - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module extends the functionality of sale module to support links between products templates. This module adds two types of links : - **Cross Selling** : suggest your customer to purchase an additional product - **Up Selling** : suggest your customers to purchase a higher-end product, an upgrade, etc. These types of links are common in e-commerce shops. It can be used as a base to implement synchronizations with e-commerce. ## Important Note This module is linking products together (product templates), not product variants. For that purpose, you can use the module Product Multi Link (Variants), in the same OCA / e-commerce repository. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_product_link_form |
product.template | div | Inherits product.product_template_only_form_view | |
product_template_link__search |
Product.template.link.search | product.template.link | search | New |
product_template_link_form |
Product.template.link.form | product.template.link | form | New |
product_template_link_kanban |
Product.template.link.kanban | product.template.link | kanban | New |
product_template_link_tree |
Product.template.link.list | product.template.link | list | New |
product_template_link_type_tree_view |
product.template.link.type.list (in product_template_multi_link) | product.template.link.type | list | New |
product_template_linker_form_view |
product.template.linker.form (in product_template_multi_link) | product.template.linker | form | New |
product_template_link_count
Integer
compute='_compute_product_template_link_count'
string='Product Links Count'
product_template_link_ids
One2many → product.template.link
comodel_name='product.template.link'
compute='_compute_product_link_ids'
string='Product Links'
get_links_by_code(self, code)
show_product_template_links(self)
is_link_active
Boolean
compute='_compute_is_link_active'
left_product_img
Image
related='left_product_tmpl_id.image_128'
string='Left Product Image'
left_product_tmpl_id
Many2one → product.template
comodel_name='product.template'
index=True
ondelete='cascade'
required=True
string='Source Product'
link_type_inverse_name
Char
related='type_id.inverse_name'
link_type_name
Char
related='type_id.name'
right_product_img
Image
related='right_product_tmpl_id.image_128'
string='Right Product Image'
right_product_tmpl_id
Many2one → product.template
comodel_name='product.template'
index=True
ondelete='cascade'
required=True
string='Linked Product'
type_id
Many2one → product.template.link.type
comodel_name='product.template.link.type'
index=True
ondelete='restrict'
required=True
string='Link type'
create(self, vals_list)
write(self, vals)
code
Char
help='This code allows to provide a technical code to externalsystems identifying this link type'
args: 'Technical code'
display_name
Char
compute='_compute_display_name'
inverse_code
Char
compute='_compute_inverse_code'
help='This code allows to provide a technical code to externalsystems identifying this link type'
inverse='_inverse_inverse_code'
readonly=False
store=True
args: 'Technical code (inverse)'
inverse_name
Char
compute='_compute_inverse_name'
inverse='_inverse_inverse_name'
readonly=False
store=True
translate=True
is_symmetric
Boolean
default=True
help='The relation meaning is the same from each side of the relation'
manual_inverse_code
Char
manual_inverse_name
Char
name
Char
required=True
translate=True
get_by_code(self, code)
write(self, vals)
operation_type
Selection
help='Remove existing links: will remove every existing link on each selected products;\nLink these products: will link all selected products together.'
required=True
selection=[('unlink', 'Remove existing links'), ('link', 'Link these products')]
string='Operation'
product_ids
Many2many → product.template
comodel_name='product.template'
string='Products'
type_id
Many2one → product.template.link.type
comodel_name='product.template.link.type'
ondelete='restrict'
string='Link type'
action_apply(self)
action_apply_link(self)
action_apply_unlink(self)
default_get(self, fields_list)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/e-commerce |
| GIT | |
| GIT | https://github.com/OCA/e-commerce.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/e-commerce/tree/16.0/product_template_multi_link |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Generic Modules |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), GRAP, ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), GRAP, ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | sbejaoui, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/e-commerce |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:42 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - account_payment - account - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - payment - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_product_link_form |
product.template | div | Inherits product.product_template_only_form_view | |
product_template_link__search |
Product.template.link.search | product.template.link | search | New |
product_template_link_form |
Product.template.link.form | product.template.link | form | New |
product_template_link_kanban |
Product.template.link.kanban | product.template.link | kanban | New |
product_template_link_tree |
Product.template.link.tree | product.template.link | tree | New |
product_template_link_type_tree_view |
product.template.link.type.tree (in product_template_multi_link) | product.template.link.type | tree | New |
product_template_linker_form_view |
product.template.linker.form (in product_template_multi_link) | product.template.linker | form | New |
product_template_link_count
Integer
compute='_compute_product_template_link_count'
string='Product Links Count'
product_template_link_ids
One2many → product.template.link
comodel_name='product.template.link'
compute='_compute_product_link_ids'
string='Product Links'
get_links_by_code(self, code)
show_product_template_links(self)
is_link_active
Boolean
compute='_compute_is_link_active'
left_product_tmpl_id
Many2one → product.template
comodel_name='product.template'
index=True
ondelete='cascade'
required=True
string='Source Product'
link_type_inverse_name
Char
related='type_id.inverse_name'
link_type_name
Char
related='type_id.name'
right_product_tmpl_id
Many2one → product.template
comodel_name='product.template'
index=True
ondelete='cascade'
required=True
string='Linked Product'
type_id
Many2one → product.template.link.type
comodel_name='product.template.link.type'
index=True
ondelete='restrict'
required=True
string='Link type'
create(self, vals_list)
write(self, vals)
code
Char
help='This code allows to provide a technical code to externalsystems identifying this link type'
args: 'Technical code'
display_name
Char
compute='_compute_display_name'
inverse_code
Char
compute='_compute_inverse_code'
help='This code allows to provide a technical code to externalsystems identifying this link type'
inverse='_inverse_inverse_code'
readonly=False
store=True
args: 'Technical code (inverse)'
inverse_name
Char
compute='_compute_inverse_name'
inverse='_inverse_inverse_name'
readonly=False
store=True
translate=True
is_symmetric
Boolean
default=True
help='The relation meaning is the same from each side of the relation'
manual_inverse_code
Char
manual_inverse_name
Char
name
Char
required=True
translate=True
get_by_code(self, code)
write(self, vals)
operation_type
Selection
help='Remove existing links: will remove every existing link on each selected products;\nLink these products: will link all selected products together.'
required=True
selection=[('unlink', 'Remove existing links'), ('link', 'Link these products')]
string='Operation'
product_ids
Many2many → product.template
comodel_name='product.template'
string='Products'
type_id
Many2one → product.template.link.type
comodel_name='product.template.link.type'
ondelete='restrict'
string='Link type'
action_apply(self)
action_apply_link(self)
action_apply_unlink(self)
default_get(self, fields_list)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/e-commerce |
| GIT | |
| GIT | https://github.com/OCA/e-commerce.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/e-commerce/tree/15.0/product_template_multi_link |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Generic Modules |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), GRAP, ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), GRAP, ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Héctor Vi Or |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/e-commerce |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:31 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - payment - account - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_product_link_form |
product.template | div | Inherits product.product_template_only_form_view | |
product_template_link__search |
Product.template.link.search | product.template.link | search | New |
product_template_link_form |
Product.template.link.form | product.template.link | form | New |
product_template_link_kanban |
Product.template.link.kanban | product.template.link | kanban | New |
product_template_link_tree |
Product.template.link.tree | product.template.link | tree | New |
product_template_link_type_tree_view |
product.template.link.type.tree (in product_template_multi_link) | product.template.link.type | tree | New |
product_template_linker_form_view |
product.template.linker.form (in product_template_multi_link) | product.template.linker | form | New |
product_template_link_count
Integer
compute='_compute_product_template_link_count'
string='Product Links Count'
product_template_link_ids
One2many → product.template.link
comodel_name='product.template.link'
compute='_compute_product_link_ids'
string='Product Links'
get_links_by_code(self, code)
show_product_template_links(self)
is_link_active
Boolean
compute='_compute_is_link_active'
left_product_tmpl_id
Many2one → product.template
comodel_name='product.template'
index=True
ondelete='cascade'
required=True
string='Source Product'
link_type_inverse_name
Char
related='type_id.inverse_name'
link_type_name
Char
related='type_id.name'
right_product_tmpl_id
Many2one → product.template
comodel_name='product.template'
index=True
ondelete='cascade'
required=True
string='Linked Product'
type_id
Many2one → product.template.link.type
comodel_name='product.template.link.type'
index=True
ondelete='restrict'
required=True
string='Link type'
create(self, vals_list)
write(self, vals)
code
Char
help='This code allows to provide a technical code to externalsystems identifying this link type'
args: 'Technical code'
display_name
Char
compute='_compute_display_name'
inverse_code
Char
compute='_compute_inverse_code'
help='This code allows to provide a technical code to externalsystems identifying this link type'
inverse='_inverse_inverse_code'
readonly=False
store=True
args: 'Technical code (inverse)'
inverse_name
Char
compute='_compute_inverse_name'
inverse='_inverse_inverse_name'
readonly=False
store=True
translate=True
is_symmetric
Boolean
default=True
help='The relation meaning is the same from each side of the relation'
manual_inverse_code
Char
manual_inverse_name
Char
name
Char
required=True
translate=True
get_by_code(self, code)
write(self, vals)
operation_type
Selection
help='Remove existing links: will remove every existing link on each selected products;\nLink these products: will link all selected products together.'
required=True
selection=[('unlink', 'Remove existing links'), ('link', 'Link these products')]
string='Operation'
product_ids
Many2many → product.template
comodel_name='product.template'
string='Products'
type_id
Many2one → product.template.link.type
comodel_name='product.template.link.type'
ondelete='restrict'
string='Link type'
action_apply(self)
action_apply_link(self)
action_apply_unlink(self)
default_get(self, fields_list)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/e-commerce |
| GIT | |
| GIT | https://github.com/OCA/e-commerce.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/e-commerce/tree/14.0/product_template_multi_link |
| VERSION | |
| VERSION | 1.3.0 |
| CATEGORY | |
| CATEGORY | Generic Modules |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), GRAP, ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), GRAP, ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | OCA Transbot, Sébastien Alix, oca-travis, Weblate, OCA-git-bot, Chafique, François Honoré, Hai Lang, Joshua Lauer |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/e-commerce |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:52 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - payment - account - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_product_link_form |
product.template | div | Inherits product.product_template_only_form_view | |
product_template_link__search |
Product.template.link.search | product.template.link | search | New |
product_template_link_form |
Product.template.link.form | product.template.link | form | New |
product_template_link_kanban |
Product.template.link.kanban | product.template.link | kanban | New |
product_template_link_tree |
Product.template.link.tree | product.template.link | tree | New |
product_template_link_type_tree_view |
product.template.link.type.tree (in product_template_multi_link) | product.template.link.type | tree | New |
product_template_linker_form_view |
product.template.linker.form (in product_template_multi_link) | product.template.linker | form | New |
product_template_link_count
Integer
compute='_compute_product_template_link_count'
string='Product Links Count'
product_template_link_ids
One2many → product.template.link
comodel_name='product.template.link'
compute='_compute_product_link_ids'
string='Product Links'
get_links_by_code(self, code)
show_product_template_links(self)
is_link_active
Boolean
compute='_compute_is_link_active'
left_product_tmpl_id
Many2one → product.template
comodel_name='product.template'
index=True
ondelete='cascade'
required=True
string='Source Product'
link_type_inverse_name
Char
related='type_id.inverse_name'
link_type_name
Char
related='type_id.name'
right_product_tmpl_id
Many2one → product.template
comodel_name='product.template'
index=True
ondelete='cascade'
required=True
string='Linked Product'
type_id
Many2one → product.template.link.type
comodel_name='product.template.link.type'
index=True
ondelete='restrict'
required=True
string='Link type'
create(self, vals_list)
write(self, vals)
code
Char
help='This code allows to provide a technical code to externalsystems identifying this link type'
args: 'Technical code'
display_name
Char
compute='_compute_display_name'
inverse_code
Char
compute='_compute_inverse_code'
help='This code allows to provide a technical code to externalsystems identifying this link type'
inverse='_inverse_inverse_code'
readonly=False
store=True
args: 'Technical code (inverse)'
inverse_name
Char
compute='_compute_inverse_name'
inverse='_inverse_inverse_name'
readonly=False
store=True
translate=True
is_symmetric
Boolean
default=True
help='The relation meaning is the same from each side of the relation'
manual_inverse_code
Char
manual_inverse_name
Char
name
Char
required=True
translate=True
get_by_code(self, code)
write(self, vals)
operation_type
Selection
help='Remove existing links: will remove every existing link on each selected products;\nLink these products: will link all selected products together.'
required=True
selection=[('unlink', 'Remove existing links'), ('link', 'Link these products')]
string='Operation'
product_ids
Many2many → product.template
comodel_name='product.template'
string='Products'
type_id
Many2one → product.template.link.type
comodel_name='product.template.link.type'
ondelete='restrict'
string='Link type'
action_apply(self)
action_apply_link(self)
action_apply_unlink(self)
default_get(self, fields_list)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/e-commerce |
| GIT | |
| GIT | https://github.com/OCA/e-commerce.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/e-commerce/tree/13.0/product_template_multi_link |
| VERSION | |
| VERSION | 1.3.0 |
| CATEGORY | |
| CATEGORY | Generic Modules |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), GRAP, ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), GRAP, ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Laurent Mignon (ACSONE), OCA Transbot, Thierry Ducrest, oca-travis, Weblate, OCA-git-bot, Simone Orsi |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/e-commerce |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:10 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - payment - account - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_product_link_form |
product.template | div | Inherits product.product_template_only_form_view | |
product_template_link__search |
Product.template.link.search | product.template.link | search | New |
product_template_link_form |
Product.template.link.form | product.template.link | form | New |
product_template_link_kanban |
Product.template.link.kanban | product.template.link | kanban | New |
product_template_link_tree |
Product.template.link.tree | product.template.link | tree | New |
product_template_link_type_tree_view |
product.template.link.type.tree (in product_template_multi_link) | product.template.link.type | tree | New |
product_template_link_count
Integer
compute='_compute_product_template_link_count'
string='Product Links Count'
product_template_link_ids
One2many → product.template.link
comodel_name='product.template.link'
compute='_compute_product_link_ids'
string='Product Links'
get_links_by_code(self, code)
show_product_template_links(self)
is_link_active
Boolean
compute='_compute_is_link_active'
left_product_tmpl_id
Many2one → product.template
comodel_name='product.template'
ondelete='cascade'
required=True
string='Source Product'
link_type_inverse_name
Char
related='type_id.inverse_name'
link_type_name
Char
related='type_id.name'
right_product_tmpl_id
Many2one → product.template
comodel_name='product.template'
ondelete='cascade'
required=True
string='Linked Product'
type_id
Many2one → product.template.link.type
comodel_name='product.template.link.type'
ondelete='restrict'
required=True
string='Link type'
create(self, vals_list)
write(self, vals)
code
Char
help='This code allows to provide a technical code to externalsystems identifying this link type'
args: 'Technical code'
display_name
Char
compute='_compute_display_name'
inverse_code
Char
compute='_compute_inverse_code'
help='This code allows to provide a technical code to externalsystems identifying this link type'
readonly=False
store=True
args: 'Technical code (inverse)'
inverse_name
Char
compute='_compute_inverse_name'
readonly=False
store=True
translate=True
is_symmetric
Boolean
default=True
help='The relation meaning is the same from each side of the relation'
name
Char
required=True
translate=True
get_by_code(self, code)
write(self, vals)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/e-commerce |
| GIT | |
| GIT | https://github.com/OCA/e-commerce.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/e-commerce/tree/10.0/product_template_multi_link |
| VERSION | |
| VERSION | 2.1.0 |
| CATEGORY | |
| CATEGORY | Generic Modules |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), GRAP |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), GRAP |
| COMMITTERS | |
| COMMITTERS | Sylvain LE GAL, Denis Roussel, OCA Transbot, oca-travis, Weblate, OCA-git-bot |
| WEBSITE | |
| WEBSITE | https://odoo-community.org |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:19:54 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale - sales_team - base - base_setup - web_kanban - web - bus - web_tour - account - product - decimal_precision - report - analytic - web_planner - procurement |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
openupgradelib |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_product_link_form |
product.template | div | Inherits product.product_template_only_form_view | |
product_template_link__search |
Product.template.link.search | product.template.link | search | New |
product_template_link_form |
Product.template.link.form | product.template.link | form | New |
product_template_link_kanban |
product.template.link | kanban | New | |
product_template_link_tree |
product.template.link | tree | New | |
product_template_link_type_tree_view |
product.template.link.type.tree (in product_template_multi_link) | product.template.link.type | tree | New |
product_template_linker_form_view |
product.template.linker.form (in product_template_multi_link) | product.template.linker | form | New |
product_template_link_count
Integer
compute='_compute_product_template_link_count'
string='Product Links Count'
product_template_link_ids
One2many → product.template.link
comodel_name='product.template.link'
compute='_compute_product_link_ids'
string='Product Links'
show_product_template_links(self)
left_product_tmpl_id
Many2one → product.template
comodel_name='product.template'
index=True
ondelete='cascade'
required=True
string='Source Product'
link_type_inverse_name
Char
related='type_id.inverse_name'
link_type_name
Char
related='type_id.name'
right_product_tmpl_id
Many2one → product.template
comodel_name='product.template'
index=True
ondelete='cascade'
required=True
string='Linked Product'
type_id
Many2one → product.template.link.type
comodel_name='product.template.link.type'
index=True
ondelete='restrict'
required=True
string='Link type'
create(self, vals)
write(self, vals)
code
Char
help='This code allows to provide a technical code to externalsystems identifying this link type'
args: 'Technical code'
display_name
Char
compute='_compute_display_name'
inverse_code
Char
compute='_compute_inverse_code'
help='This code allows to provide a technical code to externalsystems identifying this link type'
inverse='_inverse_inverse_code'
readonly=False
store=True
args: 'Technical code (inverse)'
inverse_name
Char
compute='_compute_inverse_name'
inverse='_inverse_inverse_name'
readonly=False
store=True
translate=True
is_symmetric
Boolean
default=True
help='The relation meaning is the same from each side of the relation'
manual_inverse_code
Char
manual_inverse_name
Char
name
Char
required=True
translate=True
write(self, vals)
operation_type
Selection
help='Remove existing links: will remove every existing link on each selected products;\nLink these products: will link all selected products together.'
required=True
selection=[('unlink', 'Remove existing links'), ('link', 'Link these products')]
string='Operation'
product_ids
Many2many → product.template
comodel_name='product.template'
string='Products'
type_id
Many2one → product.template.link.type
comodel_name='product.template.link.type'
ondelete='cascade'
action_apply(self)
action_apply_link(self)
action_apply_unlink(self)
default_get(self, fields_list)