Product Pricelist Discount by Range

product_pricelist_discount_by_range
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_discount_by_range
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Andrii9090-tecnativa
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:12
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows you to define discount ranges in a pricelist based on
a reference price (e.g., cost). Instead of applying a single discount
percentage to all products, you can configure different discount
percentages for specific price intervals. If the reference price is out
of the ranges, the pricelist will not be applied and Odoo will show a
warning.

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
product_pricelist_supplier_item_form_view product.pricelist.item.form product.pricelist.item xpath Inherits product.product_pricelist_item_form_view
Models touched (2)

New fields (3)
  • discount_range_ids One2many → product.pricelist.item.discount_range
    args: 'product.pricelist.item.discount_range', 'pricelist_item_id'
  • discount_type Selection
    default='simple' args: [('simple', 'Simple'), ('range', 'By range')]
  • price_discount Float
    compute='_compute_price_discount' readonly=False store=True
Public methods (0)

No public methods.

New fields (5)
  • max Float
    required=True
  • min Float
    required=True
  • percentage Float
    required=True
  • pricelist_item_id Many2one → product.pricelist.item
    ondelete='cascade' string='Pricelist Item' args: 'product.pricelist.item'
  • surcharge Float
Public methods (0)

No public methods.

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_discount_by_range
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Carlos Roca, Andrii9090-tecnativa
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:35
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
product_pricelist_supplier_item_form_view product.pricelist.item.form product.pricelist.item xpath Inherits product.product_pricelist_item_form_view
Models touched (2)

New fields (3)
  • discount_range_ids One2many → product.pricelist.item.discount_range
    args: 'product.pricelist.item.discount_range', 'pricelist_item_id'
  • discount_type Selection
    default='simple' args: [('simple', 'Simple'), ('range', 'By range')]
  • price_discount Float
    compute='_compute_price_discount' readonly=False store=True
Public methods (0)

No public methods.

New fields (5)
  • max Float
    required=True
  • min Float
    required=True
  • percentage Float
    required=True
  • pricelist_item_id Many2one → product.pricelist.item
    ondelete='cascade' string='Pricelist Item' args: 'product.pricelist.item'
  • surcharge Float
Public methods (0)

No public methods.