Margins by Products

product_margin
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/product_margin
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYSales/Sales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Fabien Pinckaers, Xavier Morel, Julien Castiaux, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, JF Aubert, Ali Alfie (alal), Dylan Kiss (dyki), Louis Gobert, gteboul, Mohammad Abdulmoneim (abdu)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:44
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Adds a reporting menu in products that computes sales, purchases, margins and other interesting indicators based on invoices.
=============================================================================================================================

The wizard to launch the report has several options to help you get the data you need.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_margin_form_view product.margin.form product.margin form New
view_product_margin_form product.margin.form.inherit product.product form New
view_product_margin_graph product.margin.graph product.product graph New
view_product_margin_tree product.margin.list product.product list New
Models touched (2)

New fields (3)
  • from_date Date
    default=time.strftime('%Y-01-01') args: 'From'
  • invoice_state Selection
    default='open_paid' required=True args: [('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')], 'Invoice State'
  • to_date Date
    default=time.strftime('%Y-12-31') args: 'To'
Public methods (1)
  • action_open_window(self)

New fields (17)
  • date_from Date
    compute='_compute_product_margin_fields_values' string='Margin Date From'
  • date_to Date
    compute='_compute_product_margin_fields_values' string='Margin Date To'
  • expected_margin Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Normal Cost' string='Expected Margin'
  • expected_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Expected margin * 100 / Expected Sale' string='Expected Margin (%)'
  • invoice_state Selection
    compute='_compute_product_margin_fields_values' readonly=True selection=[('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')] string='Invoice State'
  • normal_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Cost price and quantity of Vendor Bills' string='Normal Cost'
  • purchase_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Vendor Bills' string='Avg. Purchase Unit Price'
  • purchase_gap Float
    compute='_compute_product_margin_fields_values' help='Normal Cost - Total Cost' string='Purchase Gap'
  • purchase_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Vendor Bills' string='# Invoiced in Purchase'
  • sale_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Customer Invoices.' string='Avg. Sale Unit Price'
  • sale_expected Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Sale Catalog price and quantity of Customer Invoices' string='Expected Sale'
  • sale_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Customer Invoices' string='# Invoiced in Sale'
  • sales_gap Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Turn Over' string='Sales Gap'
  • total_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Vendor Bills ' string='Total Cost'
  • total_margin Float
    compute='_compute_product_margin_fields_values' help='Turnover - Total cost' string='Total Margin'
  • total_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Total margin * 100 / Turnover' string='Total Margin Rate(%)'
  • turnover Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Customer Invoices' string='Turnover'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/product_margin
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYSales/Sales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Odoo Online, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Louis Wicket (wil), Ali Alfie (alal), Dylan Kiss (dyki), Tanguy Quéguineur, Louis (wil), gteboul
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:25:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Adds a reporting menu in products that computes sales, purchases, margins and other interesting indicators based on invoices.
=============================================================================================================================

The wizard to launch the report has several options to help you get the data you need.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_margin_form_view product.margin.form product.margin form New
view_product_margin_form product.margin.form.inherit product.product form New
view_product_margin_graph product.margin.graph product.product graph New
view_product_margin_tree product.margin.list product.product list New
Models touched (2)

New fields (3)
  • from_date Date
    default=time.strftime('%Y-01-01') args: 'From'
  • invoice_state Selection
    default='open_paid' required=True args: [('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')], 'Invoice State'
  • to_date Date
    default=time.strftime('%Y-12-31') args: 'To'
Public methods (1)
  • action_open_window(self)

New fields (17)
  • date_from Date
    compute='_compute_product_margin_fields_values' string='Margin Date From'
  • date_to Date
    compute='_compute_product_margin_fields_values' string='Margin Date To'
  • expected_margin Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Normal Cost' string='Expected Margin'
  • expected_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Expected margin * 100 / Expected Sale' string='Expected Margin (%)'
  • invoice_state Selection
    compute='_compute_product_margin_fields_values' readonly=True selection=[('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')] string='Invoice State'
  • normal_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Cost price and quantity of Vendor Bills' string='Normal Cost'
  • purchase_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Vendor Bills' string='Avg. Purchase Unit Price'
  • purchase_gap Float
    compute='_compute_product_margin_fields_values' help='Normal Cost - Total Cost' string='Purchase Gap'
  • purchase_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Vendor Bills' string='# Invoiced in Purchase'
  • sale_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Customer Invoices.' string='Avg. Sale Unit Price'
  • sale_expected Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Sale Catalog price and quantity of Customer Invoices' string='Expected Sale'
  • sale_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Customer Invoices' string='# Invoiced in Sale'
  • sales_gap Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Turn Over' string='Sales Gap'
  • total_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Vendor Bills ' string='Total Cost'
  • total_margin Float
    compute='_compute_product_margin_fields_values' help='Turnover - Total cost' string='Total Margin'
  • total_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Total margin * 100 / Turnover' string='Total Margin Rate(%)'
  • turnover Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Customer Invoices' string='Turnover'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/product_margin
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYSales/Sales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Yannick Tivisse, Odoo Online, Xavier-Do, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, roen-odoo, Aurelien van Delft (avd), Louis Wicket (wil), Ali Alfie (alal), Dylan Kiss (dyki), Julien Carion (juca), Tanguy Quéguineur, Louis (wil), gteboul
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Adds a reporting menu in products that computes sales, purchases, margins and other interesting indicators based on invoices.
=============================================================================================================================

The wizard to launch the report has several options to help you get the data you need.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_margin_form_view product.margin.form product.margin form New
view_product_margin_form product.margin.form.inherit product.product form New
view_product_margin_graph product.margin.graph product.product graph New
view_product_margin_tree product.margin.tree product.product tree New
Models touched (2)

New fields (3)
  • from_date Date
    default=time.strftime('%Y-01-01') args: 'From'
  • invoice_state Selection
    default='open_paid' required=True args: [('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')], 'Invoice State'
  • to_date Date
    default=time.strftime('%Y-12-31') args: 'To'
Public methods (1)
  • action_open_window(self)

New fields (17)
  • date_from Date
    compute='_compute_product_margin_fields_values' string='Margin Date From'
  • date_to Date
    compute='_compute_product_margin_fields_values' string='Margin Date To'
  • expected_margin Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Normal Cost' string='Expected Margin'
  • expected_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Expected margin * 100 / Expected Sale' string='Expected Margin (%)'
  • invoice_state Selection
    compute='_compute_product_margin_fields_values' readonly=True selection=[('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')] string='Invoice State'
  • normal_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Cost price and quantity of Vendor Bills' string='Normal Cost'
  • purchase_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Vendor Bills' string='Avg. Purchase Unit Price'
  • purchase_gap Float
    compute='_compute_product_margin_fields_values' help='Normal Cost - Total Cost' string='Purchase Gap'
  • purchase_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Vendor Bills' string='# Invoiced in Purchase'
  • sale_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Customer Invoices.' string='Avg. Sale Unit Price'
  • sale_expected Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Sale Catalog price and quantity of Customer Invoices' string='Expected Sale'
  • sale_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Customer Invoices' string='# Invoiced in Sale'
  • sales_gap Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Turn Over' string='Sales Gap'
  • total_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Vendor Bills ' string='Total Cost'
  • total_margin Float
    compute='_compute_product_margin_fields_values' help='Turnover - Total cost' string='Total Margin'
  • total_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Total margin * 100 / Turnover' string='Total Margin Rate(%)'
  • turnover Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Customer Invoices' string='Turnover'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/16.0/product_margin
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYSales/Sales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Yannick Tivisse, Andrea Grazioso (agr-odoo), Prakash Prajapati, Tiffany Chang (tic), roen-odoo, william-andre, MerlinGuillaume, Aurelien van Delft (avd), Michael Tietz, Tanguy Quéguineur
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:51
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Adds a reporting menu in products that computes sales, purchases, margins and other interesting indicators based on invoices.
=============================================================================================================================

The wizard to launch the report has several options to help you get the data you need.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_margin_form_view product.margin.form product.margin form New
view_product_margin_form product.margin.form.inherit product.product form New
view_product_margin_graph product.margin.graph product.product graph New
view_product_margin_tree product.margin.tree product.product tree New
Models touched (2)

New fields (3)
  • from_date Date
    default=time.strftime('%Y-01-01') args: 'From'
  • invoice_state Selection
    default='open_paid' required=True args: [('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')], 'Invoice State'
  • to_date Date
    default=time.strftime('%Y-12-31') args: 'To'
Public methods (1)
  • action_open_window(self)

New fields (17)
  • date_from Date
    compute='_compute_product_margin_fields_values' string='Margin Date From'
  • date_to Date
    compute='_compute_product_margin_fields_values' string='Margin Date To'
  • expected_margin Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Normal Cost' string='Expected Margin'
  • expected_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Expected margin * 100 / Expected Sale' string='Expected Margin (%)'
  • invoice_state Selection
    compute='_compute_product_margin_fields_values' readonly=True selection=[('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')] string='Invoice State'
  • normal_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Cost price and quantity of Vendor Bills' string='Normal Cost'
  • purchase_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Vendor Bills' string='Avg. Purchase Unit Price'
  • purchase_gap Float
    compute='_compute_product_margin_fields_values' help='Normal Cost - Total Cost' string='Purchase Gap'
  • purchase_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Vendor Bills' string='# Invoiced in Purchase'
  • sale_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Customer Invoices.' string='Avg. Sale Unit Price'
  • sale_expected Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Sale Catalog price and quantity of Customer Invoices' string='Expected Sale'
  • sale_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Customer Invoices' string='# Invoiced in Sale'
  • sales_gap Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Turn Over' string='Sales Gap'
  • total_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Vendor Bills ' string='Total Cost'
  • total_margin Float
    compute='_compute_product_margin_fields_values' help='Turnover - Total cost' string='Total Margin'
  • total_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Total margin * 100 / Turnover' string='Total Margin Rate(%)'
  • turnover Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Customer Invoices' string='Turnover'
Public methods (1)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
    Inherit read_group to calculate the sum of the non-stored fields, as it is not automatically done anymore through the XML.
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/15.0/product_margin
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYSales/Sales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Nicolas Lempereur, Romain Derie, wan, Xavier-Do, Andrea Grazioso (agr-odoo), Anh Thao Pham (pta), Mathieu Duckerts-Antoine, Aurélien (avd), Kevin Baptiste, roen-odoo, MerlinGuillaume, Tanguy Quéguineur
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:25:28
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Adds a reporting menu in products that computes sales, purchases, margins and other interesting indicators based on invoices.
=============================================================================================================================

The wizard to launch the report has several options to help you get the data you need.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_margin_form_view product.margin.form product.margin form New
view_product_margin_form product.margin.form.inherit product.product form New
view_product_margin_graph product.margin.graph product.product graph New
view_product_margin_tree product.margin.tree product.product tree New
Models touched (2)

New fields (3)
  • from_date Date
    default=time.strftime('%Y-01-01') args: 'From'
  • invoice_state Selection
    default='open_paid' index=True required=True args: [('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')], 'Invoice State'
  • to_date Date
    default=time.strftime('%Y-12-31') args: 'To'
Public methods (1)
  • action_open_window(self)

New fields (17)
  • date_from Date
    compute='_compute_product_margin_fields_values' string='Margin Date From'
  • date_to Date
    compute='_compute_product_margin_fields_values' string='Margin Date To'
  • expected_margin Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Normal Cost' string='Expected Margin'
  • expected_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Expected margin * 100 / Expected Sale' string='Expected Margin (%)'
  • invoice_state Selection
    compute='_compute_product_margin_fields_values' readonly=True selection=[('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')] string='Invoice State'
  • normal_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Cost price and quantity of Vendor Bills' string='Normal Cost'
  • purchase_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Vendor Bills ' string='Avg. Purchase Unit Price'
  • purchase_gap Float
    compute='_compute_product_margin_fields_values' help='Normal Cost - Total Cost' string='Purchase Gap'
  • purchase_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Vendor Bills' string='# Invoiced in Purchase'
  • sale_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Customer Invoices.' string='Avg. Sale Unit Price'
  • sale_expected Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Sale Catalog price and quantity of Customer Invoices' string='Expected Sale'
  • sale_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Customer Invoices' string='# Invoiced in Sale'
  • sales_gap Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Turn Over' string='Sales Gap'
  • total_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Vendor Bills ' string='Total Cost'
  • total_margin Float
    compute='_compute_product_margin_fields_values' help='Turnover - Total cost' string='Total Margin'
  • total_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Total margin * 100 / Turnover' string='Total Margin Rate(%)'
  • turnover Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Customer Invoices' string='Turnover'
Public methods (1)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
    Inherit read_group to calculate the sum of the non-stored fields, as it is not automatically done anymore through the XML.
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/14.0/product_margin
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYSales/Sales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Christophe Simonis, Xavier Morel, Nicolas Martinelli, Yannick Tivisse, Laurent Smet, wan, Xavier-Do, Andrea Grazioso (agr-odoo), oco-odoo, Anh Thao Pham (pta), Debauche Stéphane, Mathieu Duckerts-Antoine, Aurélien (avd), Jigar Vaghela, william
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:14:30
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Adds a reporting menu in products that computes sales, purchases, margins and other interesting indicators based on invoices.
=============================================================================================================================

The wizard to launch the report has several options to help you get the data you need.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_margin_form_view product.margin.form product.margin form New
view_product_margin_form product.margin.form.inherit product.product form New
view_product_margin_graph product.margin.graph product.product graph New
view_product_margin_tree product.margin.tree product.product tree New
Models touched (2)

New fields (3)
  • from_date Date
    default=time.strftime('%Y-01-01') args: 'From'
  • invoice_state Selection
    default='open_paid' index=True required=True args: [('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')], 'Invoice State'
  • to_date Date
    default=time.strftime('%Y-12-31') args: 'To'
Public methods (1)
  • action_open_window(self)

New fields (17)
  • date_from Date
    compute='_compute_product_margin_fields_values' string='Margin Date From'
  • date_to Date
    compute='_compute_product_margin_fields_values' string='Margin Date To'
  • expected_margin Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Normal Cost' string='Expected Margin'
  • expected_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Expected margin * 100 / Expected Sale' string='Expected Margin (%)'
  • invoice_state Selection
    compute='_compute_product_margin_fields_values' readonly=True selection=[('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')] string='Invoice State'
  • normal_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Cost price and quantity of Vendor Bills' string='Normal Cost'
  • purchase_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Vendor Bills ' string='Avg. Purchase Unit Price'
  • purchase_gap Float
    compute='_compute_product_margin_fields_values' help='Normal Cost - Total Cost' string='Purchase Gap'
  • purchase_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Vendor Bills' string='# Invoiced in Purchase'
  • sale_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Customer Invoices.' string='Avg. Sale Unit Price'
  • sale_expected Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Sale Catalog price and quantity of Customer Invoices' string='Expected Sale'
  • sale_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Customer Invoices' string='# Invoiced in Sale'
  • sales_gap Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Turn Over' string='Sales Gap'
  • total_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Vendor Bills ' string='Total Cost'
  • total_margin Float
    compute='_compute_product_margin_fields_values' help='Turnover - Standard price' string='Total Margin'
  • total_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Total margin * 100 / Turnover' string='Total Margin Rate(%)'
  • turnover Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Customer Invoices' string='Turnover'
Public methods (1)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
    Inherit read_group to calculate the sum of the non-stored fields, as it is not automatically done anymore through the XML.
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/13.0/product_margin
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYSales/Sales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Xavier Morel, Nicolas Martinelli, qdp-odoo, Damien Bouvy, Yannick Tivisse, Christophe Monniez, Adrian Torres, Xavier-Do, Andrea Grazioso (agr-odoo), Anh Thao Pham (pta), Aurélien (avd)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:06:43
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Adds a reporting menu in products that computes sales, purchases, margins and other interesting indicators based on invoices.
=============================================================================================================================

The wizard to launch the report has several options to help you get the data you need.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_margin_form_view product.margin.form product.margin form New
view_product_margin_form product.margin.form.inherit product.product form New
view_product_margin_graph product.margin.graph product.product graph New
view_product_margin_tree product.margin.tree product.product tree New
Models touched (2)

New fields (3)
  • from_date Date
    default=time.strftime('%Y-01-01') args: 'From'
  • invoice_state Selection
    default='open_paid' index=True required=True args: [('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')], 'Invoice State'
  • to_date Date
    default=time.strftime('%Y-12-31') args: 'To'
Public methods (1)
  • action_open_window(self)

New fields (17)
  • date_from Date
    compute='_compute_product_margin_fields_values' string='Margin Date From'
  • date_to Date
    compute='_compute_product_margin_fields_values' string='Margin Date To'
  • expected_margin Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Normal Cost' string='Expected Margin'
  • expected_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Expected margin * 100 / Expected Sale' string='Expected Margin (%)'
  • invoice_state Selection
    compute='_compute_product_margin_fields_values' readonly=True selection=[('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')] string='Invoice State'
  • normal_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Cost price and quantity of Vendor Bills' string='Normal Cost'
  • purchase_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Vendor Bills ' string='Avg. Purchase Unit Price'
  • purchase_gap Float
    compute='_compute_product_margin_fields_values' help='Normal Cost - Total Cost' string='Purchase Gap'
  • purchase_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Vendor Bills' string='# Invoiced in Purchase'
  • sale_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Customer Invoices.' string='Avg. Sale Unit Price'
  • sale_expected Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Sale Catalog price and quantity of Customer Invoices' string='Expected Sale'
  • sale_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Customer Invoices' string='# Invoiced in Sale'
  • sales_gap Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Turn Over' string='Sales Gap'
  • total_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Vendor Bills ' string='Total Cost'
  • total_margin Float
    compute='_compute_product_margin_fields_values' help='Turnover - Standard price' string='Total Margin'
  • total_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Total margin * 100 / Turnover' string='Total Margin Rate(%)'
  • turnover Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Customer Invoices' string='Turnover'
Public methods (1)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
    Inherit read_group to calculate the sum of the non-stored fields, as it is not automatically done anymore through the XML.
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/12.0/product_margin
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYSales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Christophe Simonis, Xavier Morel, Goffin Simon, Yannick Tivisse, qsm-odoo, Xavier-Do, Kinjal Mehta
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:57:01
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - http_routing
    - digest
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Adds a reporting menu in products that computes sales, purchases, margins and other interesting indicators based on invoices.
=============================================================================================================================

The wizard to launch the report has several options to help you get the data you need.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_margin_form_view product.margin.form product.margin form New
view_product_margin_form product.margin.form.inherit product.product form New
view_product_margin_graph product.margin.graph product.product graph New
view_product_margin_tree product.margin.tree product.product tree New
Models touched (2)

New fields (3)
  • from_date Date
    default=time.strftime('%Y-01-01') args: 'From'
  • invoice_state Selection
    default='open_paid' index=True required=True args: [('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')], 'Invoice State'
  • to_date Date
    default=time.strftime('%Y-12-31') args: 'To'
Public methods (1)
  • action_open_window(self)
    @api.multi

New fields (17)
  • date_from Date
    compute='_compute_product_margin_fields_values' string='Margin Date From'
  • date_to Date
    compute='_compute_product_margin_fields_values' string='Margin Date To'
  • expected_margin Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Normal Cost' string='Expected Margin'
  • expected_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Expected margin * 100 / Expected Sale' string='Expected Margin (%)'
  • invoice_state Selection
    compute='_compute_product_margin_fields_values' readonly=True selection=[('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')] string='Invoice State'
  • normal_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Cost price and quantity of Vendor Bills' string='Normal Cost'
  • purchase_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Vendor Bills ' string='Avg. Purchase Unit Price'
  • purchase_gap Float
    compute='_compute_product_margin_fields_values' help='Normal Cost - Total Cost' string='Purchase Gap'
  • purchase_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Vendor Bills' string='# Invoiced in Purchase'
  • sale_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Customer Invoices.' string='Avg. Sale Unit Price'
  • sale_expected Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Sale Catalog price and quantity of Customer Invoices' string='Expected Sale'
  • sale_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Customer Invoices' string='# Invoiced in Sale'
  • sales_gap Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Turn Over' string='Sales Gap'
  • total_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Vendor Bills ' string='Total Cost'
  • total_margin Float
    compute='_compute_product_margin_fields_values' help='Turnover - Standard price' string='Total Margin'
  • total_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Total margin * 100 / Turnover' string='Total Margin Rate(%)'
  • turnover Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Customer Invoices' string='Turnover'
Public methods (1)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
    Inherit read_group to calculate the sum of the non-stored fields, as it is not automatically done anymore through the XML.
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/11.0/product_margin
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYSales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Olivier Dony, Christophe Simonis, qdp-odoo, GitHub, Odoo Online
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:53:43
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - analytic
    - web_planner
    - portal
    - http_routing
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Adds a reporting menu in products that computes sales, purchases, margins and other interesting indicators based on invoices.
=============================================================================================================================

The wizard to launch the report has several options to help you get the data you need.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_margin_form_view product.margin.form product.margin form New
view_product_margin_form product.margin.form.inherit product.product form New
view_product_margin_graph product.margin.graph product.product graph New
view_product_margin_tree product.margin.tree product.product tree New
Models touched (2)

New fields (3)
  • from_date Date
    default=time.strftime('%Y-01-01') args: 'From'
  • invoice_state Selection
    default='open_paid' index=True required=True args: [('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')], 'Invoice State'
  • to_date Date
    default=time.strftime('%Y-12-31') args: 'To'
Public methods (1)
  • action_open_window(self)
    @api.multi

New fields (17)
  • date_from Date
    compute='_compute_product_margin_fields_values' string='Margin Date From'
  • date_to Date
    compute='_compute_product_margin_fields_values' string='Margin Date To'
  • expected_margin Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Normal Cost' string='Expected Margin'
  • expected_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Expected margin * 100 / Expected Sale' string='Expected Margin (%)'
  • invoice_state Selection
    compute='_compute_product_margin_fields_values' readonly=True selection=[('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')] string='Invoice State'
  • normal_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Cost price and quantity of Vendor Bills' string='Normal Cost'
  • purchase_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Vendor Bills ' string='Avg. Unit Price'
  • purchase_gap Float
    compute='_compute_product_margin_fields_values' help='Normal Cost - Total Cost' string='Purchase Gap'
  • purchase_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Vendor Bills' string='# Invoiced in Purchase'
  • sale_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Customer Invoices.' string='Avg. Unit Price'
  • sale_expected Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Sale Catalog price and quantity of Customer Invoices' string='Expected Sale'
  • sale_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Customer Invoices' string='# Invoiced in Sale'
  • sales_gap Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Turn Over' string='Sales Gap'
  • total_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Vendor Bills ' string='Total Cost'
  • total_margin Float
    compute='_compute_product_margin_fields_values' help='Turnover - Standard price' string='Total Margin'
  • total_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Total margin * 100 / Turnover' string='Total Margin Rate(%)'
  • turnover Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Customer Invoices' string='Turnover'
Public methods (1)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
    Inherit read_group to calculate the sum of the non-stored fields, as it is not automatically done anymore through the XML.
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/10.0/product_margin
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYSales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Goffin Simon, Simon Lejeune, Nicolas Martinelli, Julien Legros, qdp-odoo, Lucas Perais (lpe), Yannick Tivisse
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:50:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - report
    - analytic
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Adds a reporting menu in products that computes sales, purchases, margins and other interesting indicators based on invoices.
=============================================================================================================================

The wizard to launch the report has several options to help you get the data you need.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_margin_form_view product.margin.form product.margin form New
view_product_margin_form product.margin.form.inherit product.product form New
view_product_margin_graph product.margin.graph product.product graph New
view_product_margin_tree product.margin.tree product.product tree New
Models touched (2)

New fields (3)
  • from_date Date
    default=time.strftime('%Y-01-01') args: 'From'
  • invoice_state Selection
    default='open_paid' index=True required=True args: [('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')], 'Invoice State'
  • to_date Date
    default=time.strftime('%Y-12-31') args: 'To'
Public methods (1)
  • action_open_window(self)
    @api.multi

New fields (17)
  • date_from Date
    compute='_compute_product_margin_fields_values' string='Margin Date From'
  • date_to Date
    compute='_compute_product_margin_fields_values' string='Margin Date To'
  • expected_margin Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Normal Cost' string='Expected Margin'
  • expected_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Expected margin * 100 / Expected Sale' string='Expected Margin (%)'
  • invoice_state Selection
    compute='_compute_product_margin_fields_values' readonly=True selection=[('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid')] string='Invoice State'
  • normal_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Cost price and quantity of Vendor Bills' string='Normal Cost'
  • purchase_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Vendor Bills ' string='Avg. Unit Price'
  • purchase_gap Float
    compute='_compute_product_margin_fields_values' help='Normal Cost - Total Cost' string='Purchase Gap'
  • purchase_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Vendor Bills' string='# Invoiced in Purchase'
  • sale_avg_price Float
    compute='_compute_product_margin_fields_values' help='Avg. Price in Customer Invoices.' string='Avg. Unit Price'
  • sale_expected Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Sale Catalog price and quantity of Customer Invoices' string='Expected Sale'
  • sale_num_invoiced Float
    compute='_compute_product_margin_fields_values' help='Sum of Quantity in Customer Invoices' string='# Invoiced in Sale'
  • sales_gap Float
    compute='_compute_product_margin_fields_values' help='Expected Sale - Turn Over' string='Sales Gap'
  • total_cost Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Vendor Bills ' string='Total Cost'
  • total_margin Float
    compute='_compute_product_margin_fields_values' help='Turnover - Standard price' string='Total Margin'
  • total_margin_rate Float
    compute='_compute_product_margin_fields_values' help='Total margin * 100 / Turnover' string='Total Margin Rate(%)'
  • turnover Float
    compute='_compute_product_margin_fields_values' help='Sum of Multiplication of Invoice price and quantity of Customer Invoices' string='Turnover'
Public methods (1)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
    Inherit read_group to calculate the sum of the non-stored fields, as it is not automatically done anymore through the XML.
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/9.0/product_margin
VERSION
VERSION 1.0
CATEGORY
CATEGORYSales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Josse Colpaert, Denis Ledoux, Christophe Simonis, Nicolas Martinelli, qdp-odoo, Aaron Bohy, pvy, Yannick Tivisse, Cédric Snauwaert
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:48:30
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - report
    - analytic
    - web_tip
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Adds a reporting menu in products that computes sales, purchases, margins and other interesting indicators based on invoices.
=============================================================================================================================

The wizard to launch the report has several options to help you get the data you need.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_margin_form_view product.margin.form product.margin form New
view_product_margin_form product.margin.form.inherit product.product form New
view_product_margin_graph product.margin.graph product.product graph New
view_product_margin_tree product.margin.tree product.product tree New
Models touched (0)

No models found for this module.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/8.0/product_margin
VERSION
VERSION 1.0
CATEGORY
CATEGORYSales Management
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOpenERP SA
MAINTAINERS
MAINTAINERSOpenERP SA
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Vo Minh Thu, Josse Colpaert, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Denis Ledoux, Fabien Meghazi, Christophe Simonis, Cedric Snauwaert, Aaron Bohy
WEBSITE
WEBSITEhttps://www.odoo.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:45:39
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - report
    - analytic
    - board
    - edi
    - email_template
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Adds a reporting menu in products that computes sales, purchases, margins and other interesting indicators based on invoices.
=============================================================================================================================

The wizard to launch the report has several options to help you get the data you need.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_margin_form_view product.margin.form product.margin form New
view_product_margin_form product.margin.form.inherit product.product form New
view_product_margin_graph product.margin.graph product.product graph New
view_product_margin_tree product.margin.tree product.product tree New
Models touched (0)

No models found for this module.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/7.0/product_margin
VERSION
VERSION 1.0
CATEGORY
CATEGORYSales Management
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOpenERP SA
MAINTAINERS
MAINTAINERSOpenERP SA
COMMITTERS
COMMITTERSRaphael Collet, Twinkle Christian (OpenERP), Cecile Tonglet, Rucha (Open ERP), Randhir Mayatra (OpenERP), Odoo Translation Bot, Antonin Bourguignon, ajay javiya (OpenERP), Martin Trigaux, Purnendu Singh (OpenERP), Fabien Pinckaers, Meera Trambadia (OpenERP), Olivier Dony, Rajesh Prajapati (OpenERP), Twinkle (OpenERP), Vo Minh Thu, Hardik, pso (OpenERP), Launchpad Translations on behalf of openerp, Mayur Maheshwari (OpenERP), Bhumi Thakkar (Open ERP), Ravish (Open ERP), Juan Rial
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:43:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - process
    - decimal_precision
    - mail
    - analytic
    - board
    - edi
    - email_template
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Adds a reporting menu in products that computes sales, purchases, margins and other interesting indicators based on invoices.
=============================================================================================================================

The wizard to launch the report has several options to help you get the data you need.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_margin_form_view product.margin.form product.margin form New
view_product_margin_form product.margin.form.inherit product.product form New
view_product_margin_graph product.margin.graph product.product graph New
view_product_margin_tree product.margin.tree product.product tree New
Models touched (0)

No models found for this module.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/6.1/product_margin
VERSION
VERSION 1.0
CATEGORY
CATEGORYSales Management
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOpenERP SA
MAINTAINERS
MAINTAINERSOpenERP SA
COMMITTERS
COMMITTERSStephane Wirtel, Fabien Pinckaers, Olivier Dony, Vo Minh Thu, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Mayur Maheshwari (OpenERP), vro, niv-openerp, Carlos Vásquez, ksa (Open ERP), Els Van Vossel, Israel Fermin Montilla, Kirti Savalia (OpenERP)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:41:35
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - product
    - process
    - decimal_precision
    - analytic
    - board
    - edi
    - email_template
    - mail
    - base_tools
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Adds a reporting menu in products that computes sales, purchases, margins and other interesting indicators based on invoices.
=============================================================================================================================

The wizard to launch the report has several options to help you get the data you need.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_margin_form_view product.margin.form product.margin form New
view_product_margin_form product.margin.form.inherit product.product form New
view_product_margin_graph product.margin.graph product.product graph New
view_product_margin_tree product.margin.tree product.product tree New
Models touched (0)

No models found for this module.