Product Pricelist Direct Print

product_pricelist_direct_print
REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/18.0/product_pricelist_direct_print
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYProduct
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), GRAP
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), GRAP
COMMITTERS
COMMITTERSPedro M. Baeza, Weblate, OCA-git-bot, oca-ci, Carlos Roca, CarlosRoca13
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:12
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - 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
Print price list from menu option, product templates, products variants
or price lists

**Note:**

- Odoo provides a similar feature, but with limited functionality.
- If you want to have Price List exported in XLSX format, install the
  `product_pricelist_direct_print_xlsx` OCA module present in the same
  repository.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_pricelist_form_view_inherited product.pricelist.form.view.inherited product.pricelist xpath Inherits product.product_pricelist_view
report_product_pricelist report_product_pricelist ir.ui.view qweb New
report_product_pricelist_document report_product_pricelist_document ir.ui.view qweb New
view_product_pricelist_print Product pricelist print product.pricelist.print form New
Models touched (1)

New fields (29)
  • breakage_per_category Boolean
    default=True
  • categ_ids Many2many → product.category
    comodel_name='product.category' string='Categories'
  • context_active_model Char
    compute='_compute_context_active_model' store=False
  • date Datetime
    default=fields.Datetime.now required=True
  • group_field Selection
    default='categ_id' required=True selection=<expr>
  • group_field_template Selection
    default='categ_id' required=True selection=<expr>
  • lang Selection
    default=<expr> string='Language' args: _lang_get
  • last_categ_level_to_print Integer
    help='If this field is not 0, print last n category path'
  • last_ordered_products Integer
    help='If you enter an X number here, then, for each selected customer, the last X ordered products will be obtained for the report.'
  • max_categ_level Integer
    help='If this field is not 0, products are grouped at max level of category tree.' string='Max category level'
  • order_field Selection
    string='Order' args: [('name', 'Name'), ('default_code', 'Internal Reference')]
  • partner_count Integer
    compute='_compute_partner_count'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Customer'
  • partner_ids Many2many → res.partner
    comodel_name='res.partner' string='Customers'
  • pricelist_id Many2one → product.pricelist
    comodel_name='product.pricelist' string='Pricelist'
  • print_child_categories Boolean
  • product_ids Many2many → product.product
    comodel_name='product.product' help='Keep empty for all products' string='Products'
  • product_price Float
    compute='_compute_product_price'
  • product_selling_date_threshold Datetime
    help='Filter only the products ordered since this date' string='Selling date threshold'
  • product_tmpl_ids Many2many → product.template
    comodel_name='product.template' help='Keep empty for all products' string='Product Templates'
  • show_description_sale Boolean
    string='Show Sales Description'
  • show_only_defined_products Boolean
    help='Check this field to print only the products defined in the pricelist. The entries in the list referring to all products will not be displayed.' string='Show only the products defined on pricelist'
  • show_pricelist_name Boolean
    default=True
  • show_product_uom Boolean
    string='Show Product UoM'
  • show_sale_price Boolean
  • show_standard_price Boolean
    string='Show Cost Price'
  • show_variants Boolean
  • summary Text
  • vat_mode Selection
    selection=[('vat_excl', 'Vat Excluded'), ('vat_incl', 'Vat Included')]
Public methods (14)
  • action_pricelist_send(self)
  • default_get(self, fields)
    @api.model
  • force_pricelist_send(self)
  • get_group_key(self, product)
  • get_group_name(self, group_name)
  • get_groups_to_print(self)
  • get_last_ordered_products_to_print(self)
  • get_pricelist_to_print(self)
  • get_products_domain(self)
  • get_products_to_print(self)
  • get_sorted_products(self, products)
  • message_composer_action(self)
  • print_report(self)
  • send_batch(self)
REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/17.0/product_pricelist_direct_print
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYProduct
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), GRAP
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), GRAP
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, CarlosRoca13, bosd
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:05
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - 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
Print price list from menu option, product templates, products variants
or price lists

**Note:**

- Odoo provides a similar feature, but with limited functionality.
- If you want to have Price List exported in XLSX format, install the
  `product_pricelist_direct_print_xlsx` OCA module present in the same
  repository.

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
report_product_pricelist report_product_pricelist ir.ui.view qweb New
report_product_pricelist_document report_product_pricelist_document ir.ui.view qweb New
view_product_pricelist_print Product pricelist print product.pricelist.print form New
Models touched (1)

New fields (28)
  • breakage_per_category Boolean
    default=True
  • categ_ids Many2many → product.category
    comodel_name='product.category' string='Categories'
  • context_active_model Char
    compute='_compute_context_active_model' store=False
  • date Datetime
    default=fields.Datetime.now required=True
  • group_field Selection
    default='categ_id' required=True selection=<expr>
  • lang Selection
    default=<expr> string='Language' args: _lang_get
  • last_categ_level_to_print Integer
    help='If this field is not 0, print last n category path'
  • last_ordered_products Integer
    help='If you enter an X number here, then, for each selected customer, the last X ordered products will be obtained for the report.'
  • max_categ_level Integer
    help='If this field is not 0, products are grouped at max level of category tree.' string='Max category level'
  • order_field Selection
    string='Order' args: [('name', 'Name'), ('default_code', 'Internal Reference')]
  • partner_count Integer
    compute='_compute_partner_count'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Customer'
  • partner_ids Many2many → res.partner
    comodel_name='res.partner' string='Customers'
  • pricelist_id Many2one → product.pricelist
    comodel_name='product.pricelist' string='Pricelist'
  • print_child_categories Boolean
  • product_ids Many2many → product.product
    comodel_name='product.product' help='Keep empty for all products' string='Products'
  • product_price Float
    compute='_compute_product_price'
  • product_selling_date_threshold Datetime
    help='Filter only the products ordered since this date' string='Selling date threshold'
  • product_tmpl_ids Many2many → product.template
    comodel_name='product.template' help='Keep empty for all products' string='Product Templates'
  • show_only_defined_products Boolean
    help='Check this field to print only the products defined in the pricelist. The entries in the list referring to all products will not be displayed.' string='Show the products defined on pricelist'
  • show_pricelist_name Boolean
    default=True
  • show_product_images Boolean
    string='Show product images'
  • show_product_uom Boolean
    string='Show Product UoM'
  • show_sale_price Boolean
  • show_standard_price Boolean
    string='Show Cost Price'
  • show_variants Boolean
  • summary Text
  • vat_mode Selection
    selection=[('vat_excl', 'Vat Excluded'), ('vat_incl', 'Vat Included')]
Public methods (14)
  • action_pricelist_send(self)
  • default_get(self, fields)
    @api.model
  • force_pricelist_send(self)
  • get_group_key(self, product)
  • get_group_name(self, group_name)
  • get_groups_to_print(self)
  • get_last_ordered_products_to_print(self)
  • get_pricelist_to_print(self)
  • get_products_domain(self)
  • get_products_to_print(self)
  • get_sorted_products(self, products)
  • message_composer_action(self)
  • print_report(self)
  • send_batch(self)
REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/16.0/product_pricelist_direct_print
VERSION
VERSION 1.4.0
CATEGORY
CATEGORYProduct
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), GRAP
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), GRAP
COMMITTERS
COMMITTERSSylvain LE GAL, Weblate, OCA-git-bot, David, oca-ci, Carlos Roca, bosd, Juan Carlos B, josep-tecnativa, trisdoan, chaule97, Pascual Lorente
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - 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

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
report_product_pricelist report_product_pricelist ir.ui.view qweb New
report_product_pricelist_document report_product_pricelist_document ir.ui.view qweb New
view_product_pricelist_print Product pricelist print product.pricelist.print form New
Models touched (1)

New fields (28)
  • breakage_per_category Boolean
    default=True
  • categ_ids Many2many → product.category
    comodel_name='product.category' string='Categories'
  • context_active_model Char
    compute='_compute_context_active_model' store=False
  • date Datetime
    default=fields.Datetime.now required=True
  • group_field Selection
    default='categ_id' required=True selection=<expr>
  • lang Selection
    default=<expr> string='Language' args: _lang_get
  • last_categ_level_to_print Integer
    help='If this field is not 0, print last n category path'
  • last_ordered_products Integer
    help='If you enter an X number here, then, for each selected customer, the last X ordered products will be obtained for the report.'
  • max_categ_level Integer
    help='If this field is not 0, products are grouped at max level of category tree.' string='Max category level'
  • order_field Selection
    string='Order' args: [('name', 'Name'), ('default_code', 'Internal Reference')]
  • partner_count Integer
    compute='_compute_partner_count'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Customer'
  • partner_ids Many2many → res.partner
    comodel_name='res.partner' string='Customers'
  • pricelist_id Many2one → product.pricelist
    comodel_name='product.pricelist' string='Pricelist'
  • print_child_categories Boolean
  • product_ids Many2many → product.product
    comodel_name='product.product' help='Keep empty for all products' string='Products'
  • product_price Float
    compute='_compute_product_price'
  • product_selling_date_threshold Datetime
    help='Filter only the products ordered since this date' string='Selling date threshold'
  • product_tmpl_ids Many2many → product.template
    comodel_name='product.template' help='Keep empty for all products' string='Product Templates'
  • show_only_defined_products Boolean
    help='Check this field to print only the products defined in the pricelist. The entries in the list referring to all products will not be displayed.' string='Show the products defined on pricelist'
  • show_pricelist_name Boolean
    default=True
  • show_product_images Boolean
    string='Show product images'
  • show_product_uom Boolean
    string='Show Product UoM'
  • show_sale_price Boolean
  • show_standard_price Boolean
    string='Show Cost Price'
  • show_variants Boolean
  • summary Text
  • vat_mode Selection
    selection=[('vat_excl', 'Vat Excluded'), ('vat_incl', 'Vat Included')]
Public methods (14)
  • action_pricelist_send(self)
  • default_get(self, fields)
    @api.model
  • force_pricelist_send(self)
  • get_group_key(self, product)
  • get_group_name(self, group_name)
  • get_groups_to_print(self)
  • get_last_ordered_products_to_print(self)
  • get_pricelist_to_print(self)
  • get_products_domain(self)
  • get_products_to_print(self)
  • get_sorted_products(self, products)
  • message_composer_action(self)
  • print_report(self)
  • send_batch(self)
REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/15.0/product_pricelist_direct_print
VERSION
VERSION 1.5.1
CATEGORY
CATEGORYProduct
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSCarlos Dauden, sergio-teruel, Weblate, OCA-git-bot, oca-ci, Christopher Ormaza, Carlos Roca, CarlosRoca13, bosd, josep-tecnativa
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:35
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/reporting-engine:
    - report_xlsx
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - 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 xlrd
xlsxwriter
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
report_product_pricelist report_product_pricelist ir.ui.view qweb New
report_product_pricelist_document report_product_pricelist_document ir.ui.view qweb New
view_product_pricelist_print Product pricelist print product.pricelist.print form New
Models touched (2)

New fields (25)
  • breakage_per_category Boolean
    default=True
  • categ_ids Many2many → product.category
    comodel_name='product.category' string='Categories'
  • context_active_model Char
    compute='_compute_context_active_model' store=False
  • date Date
  • hide_pricelist_name Boolean
  • lang Selection
    default=<expr> string='Language' args: _lang_get
  • last_categ_level_to_print Integer
    help='If this field is not 0, print last n category path'
  • last_ordered_products Integer
    help='If you enter an X number here, then, for each selected customer, the last X ordered products will be obtained for the report.'
  • max_categ_level Integer
    help='If this field is not 0, products are grouped at max level of category tree.' string='Max category level'
  • order_field Selection
    string='Order' args: [('name', 'Name'), ('default_code', 'Internal Reference')]
  • partner_count Integer
    compute='_compute_partner_count'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Customer'
  • partner_ids Many2many → res.partner
    comodel_name='res.partner' string='Customers'
  • pricelist_id Many2one → product.pricelist
    comodel_name='product.pricelist' string='Pricelist'
  • product_ids Many2many → product.product
    comodel_name='product.product' help='Keep empty for all products' string='Products'
  • product_selling_date_threshold Datetime
    help='Filter only the products ordered since this date' string='Selling date threshold'
  • product_tmpl_ids Many2many → product.template
    comodel_name='product.template' help='Keep empty for all products' string='Product Templates'
  • show_internal_category Boolean
    string='Show internal categories'
  • show_only_defined_products Boolean
    help='Check this field to print only the products defined in the pricelist. The entries in the list referring to all products will not be displayed.' string='Show the products defined on pricelist'
  • show_product_images Boolean
    string='Show product images'
  • show_sale_price Boolean
  • show_standard_price Boolean
    string='Show Cost Price'
  • show_uom Boolean
    groups='uom.group_uom' string='Show UOM'
  • show_variants Boolean
  • summary Text
Public methods (15)
  • action_pricelist_send(self)
  • default_get(self, fields)
    @api.model
  • export_xlsx(self)
  • force_pricelist_send(self)
  • get_group_key(self, product)
  • get_group_name(self, group_name)
  • get_groups_to_print(self)
  • get_last_ordered_products_to_print(self)
  • get_pricelist_to_print(self)
  • get_products_domain(self)
  • get_products_to_print(self)
  • get_sorted_products(self, products)
  • message_composer_action(self)
  • print_report(self)
  • send_batch(self)

New fields (0)

No new fields.

Public methods (1)
  • generate_xlsx_report(self, workbook, data, objects)
REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/14.0/product_pricelist_direct_print
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYProduct
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSOCA Transbot, João Marques, oca-travis, Weblate, OCA-git-bot, ferran-73, oca-ci, CarlosRoca13
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:01
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/reporting-engine:
    - report_xlsx
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - 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

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
report_product_pricelist report_product_pricelist ir.ui.view qweb New
report_product_pricelist_document report_product_pricelist_document ir.ui.view qweb New
view_product_pricelist_print Product pricelist print product.pricelist.print form New
Models touched (2)

New fields (21)
  • breakage_per_category Boolean
    default=True string='Breakage per category'
  • categ_ids Many2many → product.category
    comodel_name='product.category' string='Categories'
  • context_active_model Char
    compute='_compute_context_active_model' store=False
  • date Date
  • hide_pricelist_name Boolean
    string='Hide Pricelist Name'
  • last_ordered_products Integer
    help='If you enter an X number here, then, for each selected customer, the last X ordered products will be obtained for the report.'
  • max_categ_level Integer
    help='If this field is not 0, products are grouped at max level of category tree.' string='Max category level'
  • order_field Selection
    string='Order' args: [('name', 'Name'), ('default_code', 'Internal Reference')]
  • partner_count Integer
    compute='_compute_partner_count'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Customer'
  • partner_ids Many2many → res.partner
    comodel_name='res.partner' string='Customers'
  • pricelist_id Many2one → product.pricelist
    comodel_name='product.pricelist' string='Pricelist'
  • product_ids Many2many → product.product
    comodel_name='product.product' help='Keep empty for all products' string='Products'
  • product_tmpl_ids Many2many → product.template
    comodel_name='product.template' help='Keep empty for all products' string='Product Templates'
  • show_internal_category Boolean
    string='Show internal categories'
  • show_only_defined_products Boolean
    help='Check this field to print only the products defined in the pricelist. The entries in the list referring to all products will not be displayed.' string='Show the products defined on pricelist'
  • show_product_images Boolean
    string='Show product images'
  • show_sale_price Boolean
    string='Show Sale Price'
  • show_standard_price Boolean
    string='Show Cost Price'
  • show_variants Boolean
  • summary Text
    string='Summary'
Public methods (14)
  • action_pricelist_send(self)
  • default_get(self, fields)
    @api.model
  • export_xlsx(self)
  • force_pricelist_send(self)
  • get_group_key(self, product)
  • get_groups_to_print(self)
  • get_last_ordered_products_to_print(self)
  • get_pricelist_to_print(self)
  • get_products_domain(self)
  • get_products_to_print(self)
  • get_sorted_products(self, products)
  • message_composer_action(self)
  • print_report(self)
  • send_batch(self)

New fields (0)

No new fields.

Public methods (1)
  • generate_xlsx_report(self, workbook, data, objects)
REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/13.0/product_pricelist_direct_print
VERSION
VERSION 3.7.0
CATEGORY
CATEGORYProduct
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSCarlos Dauden, david, Alexey Pelykh, OCA Transbot, sergio-teruel, João Marques, Sergio Teruel, oca-travis, Weblate, OCA-git-bot, oca-ci, Carlos Roca, CarlosRoca13
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:14
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/reporting-engine:
    - report_xlsx
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - 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

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
report_product_pricelist report_product_pricelist ir.ui.view qweb New
report_product_pricelist_document report_product_pricelist_document ir.ui.view qweb New
view_product_pricelist_print Product pricelist print product.pricelist.print form New
Models touched (2)

New fields (19)
  • breakage_per_category Boolean
    default=True string='Breakage per category'
  • categ_ids Many2many → product.category
    comodel_name='product.category' string='Categories'
  • date Date
  • hide_pricelist_name Boolean
    string='Hide Pricelist Name'
  • last_ordered_products Integer
    help='If you enter an X number here, then, for each selected customer, the last X ordered products will be obtained for the report.'
  • max_categ_level Integer
    help='If this field is not 0, products are grouped at max level of category tree.' string='Max category level'
  • order_field Selection
    string='Order' args: [('name', 'Name'), ('default_code', 'Internal Reference')]
  • partner_count Integer
    compute='_compute_partner_count'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Customer'
  • partner_ids Many2many → res.partner
    comodel_name='res.partner' string='Customers'
  • pricelist_id Many2one → product.pricelist
    comodel_name='product.pricelist' string='Pricelist'
  • product_ids Many2many → product.product
    comodel_name='product.product' help='Keep empty for all products' string='Products'
  • product_tmpl_ids Many2many → product.template
    comodel_name='product.template' help='Keep empty for all products' string='Product Templates'
  • show_internal_category Boolean
    string='Show internal categories'
  • show_only_defined_products Boolean
    help='Check this field to print only the products defined in the pricelist. The entries in the list referring to all products will not be displayed.' string='Show the products defined on pricelist'
  • show_sale_price Boolean
    string='Show Sale Price'
  • show_standard_price Boolean
    string='Show Cost Price'
  • show_variants Boolean
  • summary Text
    string='Summary'
Public methods (14)
  • action_pricelist_send(self)
  • default_get(self, fields)
    @api.model
  • export_xlsx(self)
  • force_pricelist_send(self)
  • get_group_key(self, product)
  • get_groups_to_print(self)
  • get_last_ordered_products_to_print(self)
  • get_pricelist_to_print(self)
  • get_products_domain(self)
  • get_products_to_print(self)
  • get_sorted_products(self, products)
  • message_composer_action(self)
  • print_report(self)
  • send_batch(self)

New fields (0)

No new fields.

Public methods (1)
  • generate_xlsx_report(self, workbook, data, objects)
REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/12.0/product_pricelist_direct_print
VERSION
VERSION 2.1.0
CATEGORY
CATEGORYProduct
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSSylvain LE GAL, david, Alexey Pelykh, OCA Transbot, sergio-teruel, Sergio Teruel, oca-travis, Weblate, OCA-git-bot, oca-ci, emagdalena, Héctor Villarreal Ortega, Carlos Roca
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:18
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/reporting-engine:
    - report_xlsx
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - decimal_precision
    - uom
    - analytic
    - portal
    - http_routing
    - digest
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES xlrd
xlsxwriter
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
report_product_pricelist report_product_pricelist ir.ui.view qweb New
report_product_pricelist_document report_product_pricelist_document ir.ui.view qweb New
view_product_pricelist_print Product pricelist print product.pricelist.print form New
Models touched (2)

New fields (19)
  • categ_ids Many2many → product.category
    comodel_name='product.category' string='Categories'
  • date Date
  • group_field_id Many2one → ir.model.fields
    comodel_name='ir.model.fields' default=<expr> domain=[('model', '=', 'product.product'), ('ttype', '=', 'many2one')] required=True
  • hide_pricelist_name Boolean
    string='Hide Pricelist Name'
  • last_ordered_products Integer
    help='If you enter an X number here, then, for each selected customer, the last X ordered products will be obtained for the report.'
  • order_field Selection
    string='Order' args: [('name', 'Name'), ('default_code', 'Internal Reference')]
  • partner_count Integer
    compute='_compute_partner_count'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Customer'
  • partner_ids Many2many → res.partner
    comodel_name='res.partner' string='Customers'
  • pricelist_id Many2one → product.pricelist
    comodel_name='product.pricelist' string='Pricelist'
  • product_ids Many2many → product.product
    comodel_name='product.product' help='Keep empty for all products' string='Products'
  • product_tmpl_ids Many2many → product.template
    comodel_name='product.template' help='Keep empty for all products' string='Product Templates'
  • show_only_defined_products Boolean
    help='Check this field to print only the products defined in the pricelist. The entries in the list referring to all products will not be displayed.' string='Show the products defined on pricelist'
  • show_product_uom Boolean
    string='Show Product UoM'
  • show_sale_price Boolean
    string='Show Sale Price'
  • show_standard_price Boolean
    string='Show Cost Price'
  • show_variants Boolean
  • summary Text
    string='Summary'
  • vat_mode Selection
    selection=[('vat_excl', 'Vat Excluded'), ('vat_incl', 'Vat Included')]
Public methods (15)
  • action_pricelist_send(self)
    @api.multi
  • compute_pricelist_price(self, product, display_currency=True)
  • default_get(self, fields)
    @api.model
  • export_xlsx(self)
  • force_pricelist_send(self)
    @api.multi
  • get_group_key(self, product)
  • get_groups_to_print(self)
  • get_last_ordered_products_to_print(self)
    @api.multi
  • get_pricelist_to_print(self)
    @api.multi
  • get_products_domain(self)
  • get_products_to_print(self)
  • get_sorted_products(self, products)
  • message_composer_action(self)
    @api.multi
  • print_report(self)
    @api.multi
  • send_batch(self)
    @api.multi

New fields (0)

No new fields.

Public methods (1)
  • generate_xlsx_report(self, workbook, data, objects)
REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/11.0/product_pricelist_direct_print
VERSION
VERSION 1.2.1
CATEGORY
CATEGORYProduct
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, GitHub, Carlos Dauden, OCA Transbot, oca-travis, OCA-git-bot, David, ernesto, tbaden
WEBSITE
WEBSITEhttps://www.github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:58
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account
    - product
    - decimal_precision
    - analytic
    - web_planner
    - portal
    - http_routing
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
report_product_pricelist report_product_pricelist ir.ui.view qweb New
report_product_pricelist_document report_product_pricelist_document ir.ui.view qweb New
view_product_pricelist_print Product pricelist print product.pricelist.print form New
Models touched (1)

New fields (14)
  • categ_ids Many2many → product.category
    comodel_name='product.category' string='Categories'
  • date Date
  • hide_pricelist_name Boolean
    string='Hide Pricelist Name'
  • last_ordered_products Integer
    help='If you enter an X number here, then, for each selected customer, the last X ordered products will be obtained for the report.'
  • order_field Selection
    string='Order' args: [('name', 'Name'), ('default_code', 'Internal Reference')]
  • partner_count Integer
    compute='_compute_partner_count'
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Customer'
  • partner_ids Many2many → res.partner
    comodel_name='res.partner' string='Customers'
  • pricelist_id Many2one → product.pricelist
    comodel_name='product.pricelist' string='Pricelist'
  • product_ids Many2many → product.product
    comodel_name='product.product' help='Keep empty for all products' string='Products'
  • product_tmpl_ids Many2many → product.template
    comodel_name='product.template' help='Keep empty for all products' string='Products'
  • show_sale_price Boolean
    string='Show Sale Price'
  • show_standard_price Boolean
    string='Show Cost Price'
  • show_variants Boolean
Public methods (8)
  • action_pricelist_send(self)
    @api.multi
  • default_get(self, fields)
    @api.model
  • force_pricelist_send(self)
    @api.multi
  • get_last_ordered_products_to_print(self)
    @api.multi
  • get_pricelist_to_print(self)
    @api.multi
  • message_composer_action(self)
    @api.multi
  • print_report(self)
    @api.multi
  • send_batch(self)
    @api.multi
REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/9.0/product_pricelist_direct_print
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYProduct
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, oca-travis
WEBSITE
WEBSITEhttp://www.tecnativa.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:21
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - report
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
report_product_pricelist report_product_pricelist ir.ui.view qweb New
report_product_pricelist_document report_product_pricelist_document ir.ui.view qweb New
view_product_pricelist_print Product pricelist print product.pricelist.print form New
Models touched (1)

New fields (9)
  • categ_ids Many2many → product.category
    comodel_name='product.category' string='Categories'
  • order_field Selection
    string='Order' args: [('name', 'Name'), ('default_code', 'Internal Reference')]
  • partner_id Many2one → res.partner
    comodel_name='res.partner' string='Customer'
  • pricelist_id Many2one → product.pricelist
    comodel_name='product.pricelist' string='Pricelist'
  • product_ids Many2many → product.product
    comodel_name='product.product' help='Keep empty for all products' string='Products'
  • product_tmpl_ids Many2many → product.template
    comodel_name='product.template' help='Keep empty for all products' string='Products'
  • show_sale_price Boolean
    string='Show Sale Price'
  • show_standard_price Boolean
    string='Show Cost Price'
  • show_variants Boolean
Public methods (2)
  • default_get(self, fields)
    @api.model
  • print_report(self)
    @api.multi
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/product-attribute
PULL REQUEST
PULL REQUEST[19.0][MIG]: product_pricelist_direct_print (#2220)