Purchase Order Product Recommendation

purchase_order_product_recommendation
REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/18.0/purchase_order_product_recommendation
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYPurchases
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSsergio-teruel, Weblate, OCA-git-bot, oca-ci, Carlos Roca, pilarvargas-tecnativa
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:17
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase_stock
    - stock_account
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - onboarding
    - analytic
    - purchase
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds a recommended products wizard to current purchase
order.

It is based on delivered products to customer locations in a given range
of dates, and allows the purchase manager to quickly know the most sold
products for the current supplier, which results in an easy to use hint
to improve the purchase workflow.

If you want a better mobile usability, the module is ready to use with
the 'web_widget_numeric_step' module. Just install it and you will get a
better numeric input experience.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
purchase_order_form Recommended products button purchase.order header Inherits purchase.purchase_order_form
purchase_order_recommendation_view_form Recommended Products for this Vendor purchase.order.recommendation form New
Models touched (2)

New fields (10)
  • date_begin Date
    default=fields.Date.context_today help='Initial date to compute recommendations.' required=True
  • date_end Date
    default=fields.Date.context_today help='Final date to compute recommendations.' required=True
  • line_amount Integer
    default=15 help='Stablish a limit on how many recommendations you want to get.Leave it as 0 to set no limit' required=True string='Number of recommendations'
  • line_ids One2many → purchase.order.recommendation.line
    comodel_name='purchase.order.recommendation.line' inverse_name='wizard_id' string='Products'
  • order_id Many2one → purchase.order
    comodel_name='purchase.order' default=<expr> ondelete='cascade' readonly=True required=True string='Purchase Order'
  • product_category_ids Many2many → product.category
    comodel_name='product.category' help='Filter by product internal category' string='Product Categories'
  • show_all_partner_products Boolean
    default=False help='Show all products with supplier infos for this supplier' string='Show all supplier products'
  • show_all_products Boolean
    default=False help="Useful if a product hasn't been selled by the partner yet" string='Show all purchasable products'
  • warehouse_count Integer
    default=<expr>
  • warehouse_ids Many2many → stock.warehouse
    comodel_name='stock.warehouse' help='Constrain search to an specific warehouse' string='Warehouse'
Public methods (1)
  • action_accept(self)
    Propagate recommendations to purchase order.

New fields (18)
  • currency_id Many2one
    readonly=True related='product_id.currency_id'
  • is_modified Boolean
  • partner_id Many2one
    readonly=True related='wizard_id.order_id.partner_id'
  • price_unit Monetary
    readonly=True
  • product_code Char
    string='Product reference'
  • product_id Many2one → product.product
    comodel_name='product.product' string='Product'
  • product_name Char
  • product_uom_id Many2one → uom.uom
    related='product_id.uom_po_id' args: 'uom.uom'
  • purchase_line_id Many2one → purchase.order.line
    comodel_name='purchase.order.line'
  • times_delivered Integer
    readonly=True
  • times_received Integer
    readonly=True
  • units_available Float
    readonly=True
  • units_avg_delivered Float
    digits='Product Unit of Measure' readonly=True
  • units_delivered Float
    readonly=True
  • units_included Float
  • units_received Float
    readonly=True
  • units_virtual_available Float
    readonly=True
  • wizard_id Many2one → purchase.order.recommendation
    comodel_name='purchase.order.recommendation' ondelete='cascade' readonly=True required=True string='Wizard'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/17.0/purchase_order_product_recommendation
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPurchases
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, bt-tkarpinski, BT-tkarpinski
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase_stock
    - stock_account
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - onboarding
    - analytic
    - purchase
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds a recommended products wizard to current purchase
order.

It is based on delivered products to customer locations in a given range
of dates, and allows the purchase manager to quickly know the most sold
products for the current supplier, which results in an easy to use hint
to improve the purchase workflow.

If you want a better mobile usability, the module is ready to use with
the 'web_widget_numeric_step' module. Just install it and you will get a
better numeric input experience.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
purchase_order_form Recommended products button purchase.order header Inherits purchase.purchase_order_form
purchase_order_recommendation_view_form Recommended Products for this Vendor purchase.order.recommendation form New
Models touched (2)

New fields (10)
  • date_begin Date
    default=fields.Date.context_today help='Initial date to compute recommendations.' required=True
  • date_end Date
    default=fields.Date.context_today help='Final date to compute recommendations.' required=True
  • line_amount Integer
    default=15 help='Stablish a limit on how many recommendations you want to get.Leave it as 0 to set no limit' required=True string='Number of recommendations'
  • line_ids One2many → purchase.order.recommendation.line
    comodel_name='purchase.order.recommendation.line' inverse_name='wizard_id' string='Products'
  • order_id Many2one → purchase.order
    comodel_name='purchase.order' default=<expr> ondelete='cascade' readonly=True required=True string='Purchase Order'
  • product_category_ids Many2many → product.category
    comodel_name='product.category' help='Filter by product internal category' string='Product Categories'
  • show_all_partner_products Boolean
    default=False help='Show all products with supplier infos for this supplier' string='Show all supplier products'
  • show_all_products Boolean
    default=False help="Useful if a product hasn't been selled by the partner yet" string='Show all purchasable products'
  • warehouse_count Integer
    default=<expr>
  • warehouse_ids Many2many → stock.warehouse
    comodel_name='stock.warehouse' help='Constrain search to an specific warehouse' string='Warehouse'
Public methods (1)
  • action_accept(self)
    Propagate recommendations to purchase order.

New fields (17)
  • currency_id Many2one
    readonly=True related='product_id.currency_id'
  • is_modified Boolean
  • partner_id Many2one
    readonly=True related='wizard_id.order_id.partner_id'
  • price_unit Monetary
    readonly=True
  • product_code Char
    string='Product reference'
  • product_id Many2one → product.product
    comodel_name='product.product' string='Product'
  • product_name Char
  • purchase_line_id Many2one → purchase.order.line
    comodel_name='purchase.order.line'
  • times_delivered Integer
    readonly=True
  • times_received Integer
    readonly=True
  • units_available Float
    readonly=True
  • units_avg_delivered Float
    digits='Product Unit of Measure' readonly=True
  • units_delivered Float
    readonly=True
  • units_included Float
  • units_received Float
    readonly=True
  • units_virtual_available Float
    readonly=True
  • wizard_id Many2one → purchase.order.recommendation
    comodel_name='purchase.order.recommendation' ondelete='cascade' readonly=True required=True string='Wizard'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/16.0/purchase_order_product_recommendation
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYPurchases
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, Jairo Llopis, Weblate, OCA-git-bot, oca-ci, josep-tecnativa, Yadier A. De Quesada
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase_stock
    - stock_account
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - analytic
    - purchase
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
purchase_order_form Recommended products button purchase.order header Inherits purchase.purchase_order_form
purchase_order_recommendation_view_form Recommended Products for this Vendor purchase.order.recommendation form New
Models touched (2)

New fields (10)
  • date_begin Date
    default=fields.Date.context_today help='Initial date to compute recommendations.' required=True
  • date_end Date
    default=fields.Date.context_today help='Final date to compute recommendations.' required=True
  • line_amount Integer
    default=15 help='Stablish a limit on how many recommendations you want to get.Leave it as 0 to set no limit' required=True string='Number of recommendations'
  • line_ids One2many → purchase.order.recommendation.line
    comodel_name='purchase.order.recommendation.line' inverse_name='wizard_id' string='Products'
  • order_id Many2one → purchase.order
    comodel_name='purchase.order' default=<expr> ondelete='cascade' readonly=True required=True string='Purchase Order'
  • product_category_ids Many2many → product.category
    comodel_name='product.category' help='Filter by product internal category' string='Product Categories'
  • show_all_partner_products Boolean
    default=False help='Show all products with supplier infos for this supplier' string='Show all supplier products'
  • show_all_products Boolean
    default=False help="Useful if a product hasn't been selled by the partner yet" string='Show all purchasable products'
  • warehouse_count Integer
    default=<expr>
  • warehouse_ids Many2many → stock.warehouse
    comodel_name='stock.warehouse' help='Constrain search to an specific warehouse' string='Warehouse'
Public methods (1)
  • action_accept(self)
    Propagate recommendations to purchase order.

New fields (17)
  • currency_id Many2one
    readonly=True related='product_id.currency_id'
  • is_modified Boolean
  • partner_id Many2one
    readonly=True related='wizard_id.order_id.partner_id'
  • price_unit Monetary
    readonly=True
  • product_code Char
    string='Product reference'
  • product_id Many2one → product.product
    comodel_name='product.product' string='Product'
  • product_name Char
  • purchase_line_id Many2one → purchase.order.line
    comodel_name='purchase.order.line'
  • times_delivered Integer
    readonly=True
  • times_received Integer
    readonly=True
  • units_available Float
    readonly=True
  • units_avg_delivered Float
    digits='Product Unit of Measure' readonly=True
  • units_delivered Float
    readonly=True
  • units_included Float
  • units_received Float
    readonly=True
  • units_virtual_available Float
    readonly=True
  • wizard_id Many2one → purchase.order.recommendation
    comodel_name='purchase.order.recommendation' ondelete='cascade' readonly=True required=True string='Wizard'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/15.0/purchase_order_product_recommendation
VERSION
VERSION 1.0.3
CATEGORY
CATEGORYPurchases
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSsergio-teruel, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Cesar Andres Sanchez, josep-tecnativa
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:41
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase_stock
    - stock_account
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - analytic
    - purchase
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
purchase_order_form Recommended products button purchase.order header Inherits purchase.purchase_order_form
purchase_order_recommendation_view_form Recommended Products for this Customer purchase.order.recommendation form New
Models touched (2)

New fields (10)
  • date_begin Date
    default=fields.Date.context_today help='Initial date to compute recommendations.' required=True
  • date_end Date
    default=fields.Date.context_today help='Final date to compute recommendations.' required=True
  • line_amount Integer
    default=15 help='Stablish a limit on how many recommendations you want to get.Leave it as 0 to set no limit' required=True string='Number of recommendations'
  • line_ids One2many → purchase.order.recommendation.line
    comodel_name='purchase.order.recommendation.line' inverse_name='wizard_id' string='Products'
  • order_id Many2one → purchase.order
    comodel_name='purchase.order' default=<expr> ondelete='cascade' readonly=True required=True string='Purchase Order'
  • product_category_ids Many2many → product.category
    comodel_name='product.category' help='Filter by product internal category' string='Product Categories'
  • show_all_partner_products Boolean
    default=False help='Show all products with supplier infos for this supplier' string='Show all supplier products'
  • show_all_products Boolean
    default=False help="Useful if a product hasn't been selled by the partner yet" string='Show all purchasable products'
  • warehouse_count Integer
    default=<expr>
  • warehouse_ids Many2many → stock.warehouse
    comodel_name='stock.warehouse' help='Constrain search to an specific warehouse' string='Warehouse'
Public methods (1)
  • action_accept(self)
    Propagate recommendations to purchase order.

New fields (17)
  • currency_id Many2one
    readonly=True related='product_id.currency_id'
  • is_modified Boolean
  • partner_id Many2one
    readonly=True related='wizard_id.order_id.partner_id'
  • price_unit Monetary
    readonly=True
  • product_code Char
    string='Product reference'
  • product_id Many2one → product.product
    comodel_name='product.product' string='Product'
  • product_name Char
  • purchase_line_id Many2one → purchase.order.line
    comodel_name='purchase.order.line'
  • times_delivered Integer
    readonly=True
  • times_received Integer
    readonly=True
  • units_available Float
    readonly=True
  • units_avg_delivered Float
    digits='Product Unit of Measure' readonly=True
  • units_delivered Float
    readonly=True
  • units_included Float
  • units_received Float
    readonly=True
  • units_virtual_available Float
    readonly=True
  • wizard_id Many2one → purchase.order.recommendation
    comodel_name='purchase.order.recommendation' ondelete='cascade' readonly=True required=True string='Wizard'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/13.0/purchase_order_product_recommendation
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYPurchases
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, sergio-teruel, oca-travis, OCA-git-bot, Carlos Roca, CarlosRoca13, Manuel Calero, HviorForgeFlow
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:18
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase_stock
    - stock_account
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - account
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - purchase
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
purchase_order_form Recommended products button purchase.order header Inherits purchase.purchase_order_form
purchase_order_recommendation_view_form Recommended Products for this Customer purchase.order.recommendation form New
Models touched (2)

New fields (10)
  • date_begin Date
    default=fields.Date.context_today help='Initial date to compute recommendations.' required=True
  • date_end Date
    default=fields.Date.context_today help='Final date to compute recommendations.' required=True
  • line_amount Integer
    default=15 help='Stablish a limit on how many recommendations you want to get.Leave it as 0 to set no limit' required=True string='Number of recommendations'
  • line_ids One2many → purchase.order.recommendation.line
    comodel_name='purchase.order.recommendation.line' inverse_name='wizard_id' string='Products'
  • order_id Many2one → purchase.order
    comodel_name='purchase.order' default=<expr> ondelete='cascade' readonly=True required=True string='Purchase Order'
  • product_category_ids Many2many → product.category
    comodel_name='product.category' help='Filter by product internal category' string='Product Categories'
  • show_all_partner_products Boolean
    default=False help='Show all products with supplier infos for this supplier' string='Show all supplier products'
  • show_all_products Boolean
    default=False help="Useful if a product hasn't been selled by the partner yet" string='Show all purchasable products'
  • warehouse_count Integer
    default=<expr>
  • warehouse_ids Many2many → stock.warehouse
    comodel_name='stock.warehouse' help='Constrain search to an specific warehouse' string='Warehouse'
Public methods (1)
  • action_accept(self)
    Propagate recommendations to purchase order.

New fields (17)
  • currency_id Many2one
    readonly=True related='product_id.currency_id'
  • is_modified Boolean
  • partner_id Many2one
    readonly=True related='wizard_id.order_id.partner_id'
  • price_unit Monetary
    readonly=True
  • product_code Char
    string='Product reference'
  • product_id Many2one → product.product
    comodel_name='product.product' string='Product'
  • product_name Char
    string='Product name'
  • purchase_line_id Many2one → purchase.order.line
    comodel_name='purchase.order.line'
  • times_delivered Integer
    readonly=True
  • times_received Integer
    readonly=True
  • units_available Float
    readonly=True
  • units_avg_delivered Float
    digits='Product Unit of Measure' readonly=True
  • units_delivered Float
    readonly=True
  • units_included Float
  • units_received Float
    readonly=True
  • units_virtual_available Float
    readonly=True
  • wizard_id Many2one → purchase.order.recommendation
    comodel_name='purchase.order.recommendation' ondelete='cascade' readonly=True required=True string='Wizard'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/12.0/purchase_order_product_recommendation
VERSION
VERSION 1.2.3
CATEGORY
CATEGORYPurchases
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, david, Alexandre Díaz, OCA Transbot, Sergio Teruel, oca-travis, OCA-git-bot, ernesto, Sergio Lop Sanz
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:23
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase_stock
    - stock_account
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - account
    - analytic
    - portal
    - http_routing
    - digest
    - purchase
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
purchase_order_form Recommended products button purchase.order header Inherits purchase.purchase_order_form
purchase_order_recommendation_view_form Recommended Products for this Customer purchase.order.recommendation form New
Models touched (2)

New fields (10)
  • date_begin Date
    default=fields.Date.context_today help='Initial date to compute recommendations.' required=True
  • date_end Date
    default=fields.Date.context_today help='Final date to compute recommendations.' required=True
  • line_amount Integer
    default=15 help='Stablish a limit on how many recommendations you want to get.Leave it as 0 to set no limit' required=True string='Number of recommendations'
  • line_ids One2many → purchase.order.recommendation.line
    comodel_name='purchase.order.recommendation.line' inverse_name='wizard_id' string='Products'
  • order_id Many2one → purchase.order
    comodel_name='purchase.order' default=<expr> ondelete='cascade' readonly=True required=True string='Purchase Order'
  • product_category_ids Many2many → product.category
    comodel_name='product.category' help='Filter by product internal category' string='Product Categories'
  • show_all_partner_products Boolean
    default=False help='Show all products with supplier infos for this supplier' string='Show all supplier products'
  • show_all_products Boolean
    default=False help="Useful if a product hasn't been selled by the partner yet" string='Show all purchasable products'
  • warehouse_count Integer
    default=<expr>
  • warehouse_ids Many2many → stock.warehouse
    comodel_name='stock.warehouse' help='Constrain search to an specific warehouse' string='Warehouse'
Public methods (1)
  • action_accept(self)
    @api.multi
    Propagate recommendations to purchase order.

New fields (15)
  • currency_id Many2one
    readonly=True related='product_id.currency_id'
  • is_modified Boolean
  • partner_id Many2one
    readonly=True related='wizard_id.order_id.partner_id'
  • price_unit Monetary
    readonly=True
  • product_id Many2one → product.product
    comodel_name='product.product' string='Product'
  • purchase_line_id Many2one → purchase.order.line
    comodel_name='purchase.order.line'
  • times_delivered Integer
    readonly=True
  • times_received Integer
    readonly=True
  • units_available Float
    readonly=True
  • units_avg_delivered Float
    digits=dp.get_precision('Product Unit of Measure') readonly=True
  • units_delivered Float
    readonly=True
  • units_included Float
  • units_received Float
    readonly=True
  • units_virtual_available Float
    readonly=True
  • wizard_id Many2one → purchase.order.recommendation
    comodel_name='purchase.order.recommendation' ondelete='cascade' readonly=True required=True string='Wizard'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/11.0/purchase_order_product_recommendation
VERSION
VERSION 3.0.4
CATEGORY
CATEGORYPurchases
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, david, OCA Transbot, oca-travis, OCA-git-bot, David
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:24:01
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase
    - stock_account
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - barcodes
    - web_planner
    - account
    - analytic
    - portal
    - http_routing
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
purchase_order_form Recommended products button purchase.order header Inherits purchase.purchase_order_form
purchase_order_recommendation_view_form Recommended Products for this Customer purchase.order.recommendation form New
Models touched (2)

New fields (10)
  • date_begin Date
    default=fields.Date.context_today help='Initial date to compute recommendations.' required=True
  • date_end Date
    default=fields.Date.context_today help='Final date to compute recommendations.' required=True
  • line_amount Integer
    default=15 help='Stablish a limit on how many recommendations you want to get.Leave it as 0 to set no limit' required=True string='Number of recommendations'
  • line_ids One2many → purchase.order.recommendation.line
    comodel_name='purchase.order.recommendation.line' inverse_name='wizard_id' string='Products'
  • order_id Many2one → purchase.order
    comodel_name='purchase.order' default=<expr> ondelete='cascade' readonly=True required=True string='Purchase Order'
  • product_category_ids Many2many → product.category
    comodel_name='product.category' help='Filter by product internal category' string='Product Categories'
  • show_all_partner_products Boolean
    default=False help='Show all products with supplier infos for this supplier' string='Show all supplier products'
  • show_all_products Boolean
    default=False help="Useful if a product hasn't been selled by the partner yet" string='Show all purchasable products'
  • warehouse_count Integer
    default=<expr>
  • warehouse_ids Many2many → stock.warehouse
    comodel_name='stock.warehouse' help='Constrain search to an specific warehouse' string='Warehouse'
Public methods (1)
  • action_accept(self)
    @api.multi
    Propagate recommendations to purchase order.

New fields (15)
  • currency_id Many2one
    readonly=True related='product_id.currency_id'
  • is_modified Boolean
  • partner_id Many2one
    readonly=True related='wizard_id.order_id.partner_id'
  • price_unit Monetary
    readonly=True
  • product_id Many2one → product.product
    comodel_name='product.product' string='Product'
  • purchase_line_id Many2one → purchase.order.line
    comodel_name='purchase.order.line'
  • times_delivered Integer
    readonly=True
  • times_received Integer
    readonly=True
  • units_available Float
    readonly=True
  • units_avg_delivered Float
    digits=dp.get_precision('Product Unit of Measure') readonly=True
  • units_delivered Float
    readonly=True
  • units_included Float
  • units_received Float
    readonly=True
  • units_virtual_available Float
    readonly=True
  • wizard_id Many2one → purchase.order.recommendation
    comodel_name='purchase.order.recommendation' ondelete='cascade' readonly=True required=True string='Wizard'
Public methods (0)

No public methods.