| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/product-attribute |
| GIT | |
| GIT | https://github.com/OCA/product-attribute.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/product-attribute/tree/18.0/product_sticker |
| VERSION | |
| VERSION | 1.0.2 |
| CATEGORY | |
| CATEGORY | Sales Management |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Moduon |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Moduon |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Eduardo de Miguel, Andrii Kompaniiets |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/product-attribute |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:12 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - product - base - base_setup - web - bus - web_tour - html_editor - uom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | With this module you can add **stickers** (aka Images) to Product Attributes, Product Attributes Values or Categories. Also you can put a text below the sticker if you want. A sticker could be the image of a stamps, certifications or other images related to a product (but not the image of a product) or an attribute or a value of an attribute to use for reports o other places in Odoo. For example: ISO, Ecology, Security, Resistance, etc. This module by itself does not do anything, it is a base module to be extended by other modules. A general use case is: we have the use case than depending of the attribute of the product or the value of the product it is mandatory legally print the **sticker** in **Delivery slip** of stock picking. A specific example of use case: when selling ecological products, the European Union makes it mandatory to print official [ECO Logo](https://agriculture.ec.europa.eu/farming/organic-farming/organic-logo_en) in pickings, and this depends on the product attribute or values. An apple could be ecologic or not and depending the attribute this should be printed or not. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_attribute_view_form |
product.attribute.sticker.form | product.attribute | xpath | Inherits product.product_attribute_view_form |
product_normal_form_view |
product.product.sticker.form | product.product | xpath | Inherits product.product_normal_form_view |
product_sticker_form_view |
product.sticker.form.view | product.sticker | form | New |
product_sticker_kanban_view |
product.sticker.kanban.view | product.sticker | kanban | New |
product_sticker_list_view |
product.sticker.list.view | product.sticker | list | New |
product_sticker_search_view |
product.sticker.search.view | product.sticker | search | New |
product_template_form_view |
product.template.common.sticker.form | product.template | xpath | Inherits product.product_template_form_view |
product_variant_easy_edit_view |
product.product.view.form.easy | product.product | xpath | Inherits product.product_variant_easy_edit_view |
report_sticker_template |
report_sticker_template | ir.ui.view | qweb | New |
sticker_ids
One2many
inverse_name='product_attribute_id'
No public methods.
sticker_ids
One2many
inverse_name='product_attribute_value_id'
No public methods.
No new fields.
Public methods (2)action_view_stickers(self)
get_product_stickers(self, extra_domain=None)
available_model_ids
Many2many → ir.model
comodel_name='ir.model'
help='Models where this sticker is available. Empty means all models.'
string='Available Models'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
image_1920
Image
required=True
image_64
Image
max_height=64
max_width=64
related='image_1920'
store=True
string='Small Image'
image_size
Selection
default='64'
help='Max size of the Sticker. Max Width x Max Height'
required=True
selection=[('64', '64x64 px'), ('128', '128x128 px'), ('256', '256x256 px'), ('512', '512x512 px'), ('1024', '1024x1024 px'), ('1920', '1920x1920 px')]
name
Char
required=True
translate=True
note
Text
help='Used to display a note with the sticker'
translate=True
product_attribute_id
Many2one → product.attribute
comodel_name='product.attribute'
ondelete='cascade'
string='Attribute'
product_attribute_value_id
Many2one → product.attribute.value
comodel_name='product.attribute.value'
domain="[('attribute_id', '=', product_attribute_id)]"
ondelete='cascade'
string='Attribute value'
product_category_id
Many2one → product.category
comodel_name='product.category'
ondelete='cascade'
string='Category'
sequence
Integer
default=10
index=True
show_sticker_note
Boolean
help='If checked, the note will be displayed with the sticker'
string='Sticker Note'
get_image(self)
sticker_count
Integer
compute='_compute_sticker_count'
store=True
sticker_ids
One2many → product.sticker
comodel_name='product.sticker'
domain=<expr>
string='Product Stickers'
No public methods.
No new fields.
Public methods (1)action_view_stickers(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/product-attribute |
| GIT | |
| GIT | https://github.com/OCA/product-attribute.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/product-attribute/tree/16.0/product_sticker |
| VERSION | |
| VERSION | 3.0.0 |
| CATEGORY | |
| CATEGORY | Sales Management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Moduon |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Moduon |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Eduardo De Miguel |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/product-attribute |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:48 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - product - base - base_setup - web - bus - web_tour - uom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_attribute_view_form |
product.attribute.sticker.form | product.attribute | xpath | Inherits product.product_attribute_view_form |
product_sticker_form_view |
product.sticker.form.view | product.sticker | form | New |
product_sticker_kanban_view |
product.sticker.kanban.view | product.sticker | kanban | New |
product_sticker_search_view |
product.sticker.search.view | product.sticker | search | New |
product_sticker_tree_view |
product.sticker.form.view | product.sticker | tree | New |
product_template_form_view |
product.template.common.sticker.form | product.template | xpath | Inherits product.product_template_form_view |
report_sticker_template |
report_sticker_template | ir.ui.view | qweb | New |
sticker_ids
One2many
inverse_name='product_attribute_id'
No public methods.
sticker_ids
One2many
inverse_name='product_attribute_value_id'
No public methods.
No new fields.
Public methods (2)action_view_stickers(self)
get_product_stickers(self, extra_domain=None)
available_model_ids
Many2many → ir.model
comodel_name='ir.model'
help='Models where this sticker is available. Empty means all models.'
string='Available Models'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
image_1920
Image
required=True
image_64
Image
max_height=64
max_width=64
related='image_1920'
store=True
image_size
Selection
default='64'
help='Max size of the Sticker. Max Width x Max Height'
required=True
selection=[('64', '64x64 px'), ('128', '128x128 px'), ('256', '256x256 px'), ('512', '512x512 px'), ('1024', '1024x1024 px'), ('1920', '1920x1920 px')]
name
Char
required=True
translate=True
note
Text
help='Used to display a note with the sticker'
translate=True
product_attribute_id
Many2one → product.attribute
comodel_name='product.attribute'
ondelete='cascade'
string='Attribute'
product_attribute_value_id
Many2one → product.attribute.value
comodel_name='product.attribute.value'
domain="[('attribute_id', '=', product_attribute_id)]"
ondelete='cascade'
string='Attribute value'
product_category_id
Many2one → product.category
comodel_name='product.category'
ondelete='cascade'
string='Category'
sequence
Integer
default=10
index=True
show_sticker_note
Boolean
help='If checked, the note will be displayed with the sticker'
string='Sticker Note'
get_image(self)
sticker_count
Integer
compute='_compute_sticker_count'
store=True
sticker_ids
One2many → product.sticker
comodel_name='product.sticker'
domain=<expr>
string='Product Stickers'
No public methods.
No new fields.
Public methods (1)action_view_stickers(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/product-attribute |
| GIT | |
| GIT | https://github.com/OCA/product-attribute.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/product-attribute/tree/15.0/product_sticker |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Sales Management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Moduon |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Moduon |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Eduardo De Miguel |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/product-attribute |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:35 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - product - base - base_setup - web - bus - web_tour - uom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_attribute_view_form |
product.attribute.sticker.form | product.attribute | xpath | Inherits product.product_attribute_view_form |
product_sticker_form_view |
product.sticker.form.view | product.sticker | form | New |
product_sticker_kanban_view |
product.sticker.kanban.view | product.sticker | kanban | New |
product_sticker_search_view |
product.sticker.search.view | product.sticker | search | New |
product_sticker_tree_view |
product.sticker.form.view | product.sticker | tree | New |
product_template_form_view |
product.template.common.sticker.form | product.template | xpath | Inherits product.product_template_form_view |
sticker_ids
One2many
inverse_name='product_attribute_id'
No public methods.
sticker_ids
One2many
inverse_name='product_attribute_value_id'
No public methods.
No new fields.
Public methods (2)action_view_stickers(self)
get_product_stickers(self)
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
string='Company'
image_1920
Image
required=True
image_64
Image
max_height=64
max_width=64
related='image_1920'
store=True
name
Char
required=True
translate=True
note
Text
help='Used to display a note with the sticker'
translate=True
product_attribute_id
Many2one → product.attribute
comodel_name='product.attribute'
ondelete='cascade'
string='Attribute'
product_attribute_value_id
Many2one → product.attribute.value
comodel_name='product.attribute.value'
domain="[('attribute_id', '=', product_attribute_id)]"
ondelete='cascade'
string='Attribute value'
product_category_id
Many2one → product.category
comodel_name='product.category'
ondelete='cascade'
string='Category'
sequence
Integer
default=10
index=True
show_sticker_note
Boolean
help='If checked, the note will be displayed with the sticker'
string='Sticker Note'
No public methods.
sticker_count
Integer
compute='_compute_sticker_count'
store=True
sticker_ids
One2many → product.sticker
comodel_name='product.sticker'
domain=<expr>
string='Product Stickers'
No public methods.
No new fields.
Public methods (2)action_view_stickers(self)
get_product_stickers(self)