Putaway strategy per product

stock_putaway_product
REPOSITORY
REPOSITORYOCA/stock-logistics-warehouse
GIT
GIThttps://github.com/OCA/stock-logistics-warehouse.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-warehouse/tree/11.0/stock_putaway_product
VERSION
VERSION 1.0.3
CATEGORY
CATEGORYInventory
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Camptocamp, Apertoso N.V.
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Camptocamp, Apertoso N.V.
COMMITTERS
COMMITTERSGitHub, Denis Roussel, Alexandre Saunier, Jordi Ballester Alomar, oca-travis, Weblate, OCA-git-bot, Artem Kostyuk, Vincent Van Rossem
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-warehouse
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-warehouse:
    - stock_putaway_method
odoo/odoo:
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - stock
    - barcodes
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
product_putaway_strategy_view_form product_putaway_strategy_view_form stock.product.putaway.strategy form New
view_putaway product.putaway.form.byproduct product.putaway xpath Inherits stock_putaway_method.view_putaway
view_template_property_form product.template.product.form product.template xpath Inherits stock.view_template_property_form
Models touched (5)

New fields (1)
  • product_putaway_ids One2many → stock.product.putaway.strategy
    comodel_name='stock.product.putaway.strategy' inverse_name='product_product_id' string='Product stock locations'
Public methods (1)
  • fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
    @api.model
    Custom redefinition of fields_view_get to adapt the context to product variants.

New fields (2)
  • method Selection
    selection='_get_putaway_options'
  • product_location_ids One2many → stock.product.putaway.strategy
    comodel_name='stock.product.putaway.strategy' copy=True inverse_name='putaway_id' string='Fixed per product location'
Public methods (2)
  • get_product_putaway_strategies(self, product)
    @api.multi
    Get linked product putaway strategy that contains fixed location. product.product_putaway_ids is the fasted way to get strategy especially when we have thousand of products.
  • putaway_apply(self, product)
    :return a stock.location record or the model.

New fields (1)
  • product_putaway_ids One2many → stock.product.putaway.strategy
    comodel_name='stock.product.putaway.strategy' inverse_name='product_tmpl_id' string='Product stock locations'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • default_get(self, fields)
    @api.model

New fields (5)
  • fixed_location_id Many2one → stock.location
    comodel_name='stock.location' domain=[('usage', '=', 'internal')] required=True string='Location'
  • product_product_id Many2one → product.product
    comodel_name='product.product' index=True string='Product Variant'
  • product_tmpl_id Many2one → product.template
    comodel_name='product.template' index=True oldname='product_template_id' required=True string='Product Template'
  • putaway_id Many2one → product.putaway
    comodel_name='product.putaway' index=True required=True string='Put Away Strategy'
  • sequence Integer
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/stock-logistics-warehouse
GIT
GIThttps://github.com/OCA/stock-logistics-warehouse.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-warehouse/tree/10.0/stock_putaway_product
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYInventory
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Akretion, Apertoso N.V.
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Akretion, Apertoso N.V.
COMMITTERS
COMMITTERSAlexandre Fayolle, Laurent Mignon (ACSONE), Denis Roussel, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Pierrick Brun, Thomas Fossoul
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-warehouse
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - report
    - stock
    - procurement
    - barcodes
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_putaway_strategy_view_form product_putaway_strategy_view_form stock.product.putaway.strategy form New
view_model_form quick.add.product.location form New
view_putaway product.putaway.form.byproduct product.putaway xpath Inherits stock.view_putaway
view_template_property_form product.template.product.form product.template xpath Inherits stock.view_template_property_form
Models touched (6)

New fields (2)
  • is_product_variant Boolean
    compute='_compute_is_variant_product'
  • product_putaway_ids One2many → stock.product.putaway.strategy
    comodel_name='stock.product.putaway.strategy' inverse_name='product_product_id' string='Product stock locations'
Public methods (0)

No public methods.

New fields (2)
  • method Selection
    selection=_get_putaway_options
  • product_location_ids One2many → stock.product.putaway.strategy
    comodel_name='stock.product.putaway.strategy' copy=True inverse_name='putaway_id' string='Fixed per product location'
Public methods (2)
  • get_product_putaway_strategies(self, product)
    @api.multi
    Get linked product putaway strategy that contain fixed location. product.product_putaway_ids is the fasted way to get strategy especially when we have thousand of products.
  • putaway_apply(self, product)

New fields (2)
  • is_product_variant Boolean
    compute='_compute_is_variant_product'
  • product_putaway_ids One2many → stock.product.putaway.strategy
    comodel_name='stock.product.putaway.strategy' inverse_name='product_tmpl_id' string='Product stock locations'
Public methods (0)

No public methods.

New fields (3)
  • fixed_location_id Many2one → stock.location
    comodel_name='stock.location' required=True string='Location'
  • product_ids Many2many → product.product
    comodel_name='product.product' required=True string='Products'
  • putaway_id Many2one → product.putaway
    comodel_name='product.putaway' default=<expr> required=True string='Put Away Method'
Public methods (2)
  • apply_location(self)
    @api.multi
  • default_get(self, fields)
    @api.model

New fields (0)

No new fields.

Public methods (1)
  • default_get(self, fields)
    @api.model

New fields (5)
  • fixed_location_id Many2one → stock.location
    comodel_name='stock.location' domain=[('usage', '=', 'internal')] required=True string='Location'
  • product_product_id Many2one → product.product
    comodel_name='product.product' index=True string='Product Variant'
  • product_tmpl_id Many2one → product.template
    comodel_name='product.template' index=True oldname='product_template_id' required=True string='Product Template'
  • putaway_id Many2one → product.putaway
    comodel_name='product.putaway' index=True required=True string='Put Away Strategy'
  • sequence Integer
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/stock-logistics-warehouse
GIT
GIThttps://github.com/OCA/stock-logistics-warehouse.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-warehouse/tree/9.0/stock_putaway_product
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYInventory
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Apertoso N.V.
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Apertoso N.V.
COMMITTERS
COMMITTERSPedro M. Baeza, Jordi Ballester, OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttp://www.apertoso.be
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - report
    - stock
    - procurement
    - barcodes
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
product_putaway_strategy_view_form product_putaway_strategy_view_form stock.product.putaway.strategy form New
view_putaway product.putaway.form.byproduct product.putaway xpath Inherits stock.view_putaway
view_template_property_form product.template.product.form product.template xpath Inherits stock.view_template_property_form
Models touched (5)

New fields (1)
  • product_putaway_ids One2many → stock.product.putaway.strategy
    comodel_name='stock.product.putaway.strategy' inverse_name='product_product_id' string='Product stock locations'
Public methods (0)

No public methods.

New fields (2)
  • method Selection
    selection=_get_putaway_options
  • product_location_ids One2many → stock.product.putaway.strategy
    comodel_name='stock.product.putaway.strategy' copy=True inverse_name='putaway_id' string='Fixed per product location'
Public methods (2)
  • get_product_putaway_strategies(self, product)
    @api.multi
  • putaway_apply(self, putaway_strategy, product)
    @api.model

New fields (1)
  • product_putaway_ids One2many → stock.product.putaway.strategy
    comodel_name='stock.product.putaway.strategy' inverse_name='product_tmpl_id' string='Product stock locations'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • default_get(self, fields)
    @api.model

New fields (5)
  • fixed_location_id Many2one → stock.location
    comodel_name='stock.location' domain=[('usage', '=', 'internal')] required=True string='Location'
  • product_product_id Many2one → product.product
    comodel_name='product.product' index=True string='Product Variant'
  • product_tmpl_id Many2one → product.template
    comodel_name='product.template' index=True oldname='product_template_id' required=True string='Product Template'
  • putaway_id Many2one → product.putaway
    comodel_name='product.putaway' index=True required=True string='Put Away Strategy'
  • sequence Integer
Public methods (1)
  • get_default_inventory_id(self)
    @api.model
REPOSITORY
REPOSITORYOCA/stock-logistics-warehouse
GIT
GIThttps://github.com/OCA/stock-logistics-warehouse.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-warehouse/tree/8.0/stock_putaway_product
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYInventory
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Apertoso N.V.
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Apertoso N.V.
COMMITTERS
COMMITTERSJos De Graeve, GitHub, Jordi Ballester, OCA Transbot, David Beal, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttp://www.apertoso.be
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:21
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - report
    - stock
    - procurement
    - board
    - web_kanban_gauge
    - web_kanban_sparkline
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
product_normal_form_view product.product.form product.product xpath Inherits product.product_normal_form_view
product_putaway_strategy_view_form product_putaway_strategy_view_form stock.product.putaway.strategy form New
product_template_only_form_view product.template.product.form product.template xpath Inherits product.product_template_only_form_view
view_model_form quick.add.product.location form New
view_template_property_form nl.product.normal.form product.template xpath Inherits stock.view_template_property_form
Models touched (6)

New fields (1)
  • product_putaway_ids One2many → stock.product.putaway.strategy
    comodel_name='stock.product.putaway.strategy' inverse_name='product_product_id' string='Product stock locations'
Public methods (0)

No public methods.

New fields (2)
  • method Selection
    required=True selection=_get_putaway_options string='Method'
  • product_location_ids One2many → stock.product.putaway.strategy
    comodel_name='stock.product.putaway.strategy' copy=True inverse_name='putaway_id' string='Fixed per product location'
Public methods (1)
  • putaway_apply(self, putaway_strategy, product)
    @api.model

New fields (1)
  • product_putaway_ids One2many → stock.product.putaway.strategy
    comodel_name='stock.product.putaway.strategy' inverse_name='product_template_id' string='Product stock locations'
Public methods (0)

No public methods.

New fields (3)
  • fixed_location_id Many2one → stock.location
    comodel_name='stock.location' required=True string='Location'
  • product_ids Many2many → product.product
    comodel_name='product.product' required=True string='Products'
  • putaway_id Many2one → product.putaway
    comodel_name='product.putaway' default=__default_putaway required=True string='Put Away Method'
Public methods (2)
  • apply_location(self)
    @api.multi
  • default_get(self, fields)
    @api.model

New fields (0)

No new fields.

Public methods (1)
  • default_get(self, fields)
    @api.model

New fields (4)
  • fixed_location_id Many2one → stock.location
    comodel_name='stock.location' domain=[('usage', '=', 'internal')] required=True string='Location'
  • product_product_id Many2one → product.product
    comodel_name='product.product' domain=[('product_tmpl_id', '=', 'product_template_id.id')] required=True select=True string='Product Variant'
  • product_template_id Many2one → product.template
    comodel_name='product.template' required=True select=True string='Product Template'
  • putaway_id Many2one → product.putaway
    comodel_name='product.putaway' required=True select=True string='Put Away Method'
Public methods (1)
  • get_default_inventory_id(self)
    @api.model