Stock Reservation

stock_reserve
REPOSITORY
REPOSITORYOCA/stock-logistics-reservation
GIT
GIThttps://github.com/OCA/stock-logistics-reservation.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-reservation/tree/18.0/stock_reserve
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYWarehouse
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, rjaraspearhead
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-reservation
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - 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
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Allows to create stock reservations on products.

Each reservation can have a validity date, once passed, the reservation
is automatically lifted.

The reserved products are substracted from the virtual stock. It means
that if you reserved a quantity of products which bring the virtual
stock below the minimum, the orderpoint will be triggered and new
purchase orders will be generated. It also implies that the max may be
exceeded if the reservations are canceled.

If ownership of stock is active in the stock settings, you can specify
the owner on the reservation.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
product_product_form_view_reservation_button product.product.reservation.button product.product xpath Inherits product.product_normal_form_view
product_template_form_view_reservation_button product.template.reservation.button product.template xpath Inherits product.product_template_only_form_view
view_stock_reservation_form stock.reservation.form stock.reservation form New
view_stock_reservation_search stock.reservation.search stock.reservation search New
view_stock_reservation_tree stock.reservation.tree stock.reservation list New
Models touched (3)

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)

New fields (3)
  • date_validity Date
    args: 'Validity Date'
  • move_id Many2one → stock.move
    index=True ondelete='cascade' readonly=True required=True args: 'stock.move', 'Reservation Move'
  • note Text
    string='Notes'
Public methods (9)
  • assign_waiting_confirmed_reserve_moves(self)
    @api.model
  • default_get(self, fields_list)
    @api.model
    Fix default values - Ensure default value of computed field `product_qty` is not set as it would raise an error - Compute default `location_id` based on default `picking_type_id`. Note: `default_picking_type_id` may be present in context, so code that looks for default `location_id` is implemented here, because it relies on already calculated default `picking_type_id`.
  • get_location_from_ref(self, ref)
    @api.model
    Get a location from a xmlid if allowed :param ref: tuple (module, xmlid)
  • open_move(self)
  • release_reserve(self)
    Release moves from reservation
  • release_validity_exceeded(self, ids=None)
    @api.model
    Release all the reservation having an exceeded validity date
  • reserve(self)
    Confirm reservations The reservation is done using the default UOM of the product. A date until which the product is reserved can be specified.
  • unlink(self)
    Release the reservation before the unlink
  • write(self, vals)
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/17.0/stock_reserve
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYWarehouse
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Chris Mann
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-warehouse
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Allows to create stock reservations on products.

Each reservation can have a validity date, once passed, the reservation
is automatically lifted.

The reserved products are substracted from the virtual stock. It means
that if you reserved a quantity of products which bring the virtual
stock below the minimum, the orderpoint will be triggered and new
purchase orders will be generated. It also implies that the max may be
exceeded if the reservations are canceled.

If ownership of stock is active in the stock settings, you can specify
the owner on the reservation.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
product_product_form_view_reservation_button product.product.reservation.button product.product xpath Inherits product.product_normal_form_view
product_template_form_view_reservation_button product.template.reservation.button product.template xpath Inherits product.product_template_only_form_view
view_stock_reservation_form stock.reservation.form stock.reservation form New
view_stock_reservation_search stock.reservation.search stock.reservation search New
view_stock_reservation_tree stock.reservation.tree stock.reservation tree New
Models touched (3)

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)

New fields (3)
  • date_validity Date
    args: 'Validity Date'
  • move_id Many2one → stock.move
    index=True ondelete='cascade' readonly=True required=True args: 'stock.move', 'Reservation Move'
  • note Text
    string='Notes'
Public methods (9)
  • assign_waiting_confirmed_reserve_moves(self)
    @api.model
  • default_get(self, fields_list)
    @api.model
    Fix default values - Ensure default value of computed field `product_qty` is not set as it would raise an error - Compute default `location_id` based on default `picking_type_id`. Note: `default_picking_type_id` may be present in context, so code that looks for default `location_id` is implemented here, because it relies on already calculated default `picking_type_id`.
  • get_location_from_ref(self, ref)
    @api.model
    Get a location from a xmlid if allowed :param ref: tuple (module, xmlid)
  • open_move(self)
  • release_reserve(self)
    Release moves from reservation
  • release_validity_exceeded(self, ids=None)
    @api.model
    Release all the reservation having an exceeded validity date
  • reserve(self)
    Confirm reservations The reservation is done using the default UOM of the product. A date until which the product is reserved can be specified.
  • unlink(self)
    Release the reservation before the unlink
  • write(self, vals)
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/16.0/stock_reserve
VERSION
VERSION 1.3.1
CATEGORY
CATEGORYWarehouse
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSVíctor Martínez, Weblate, OCA-git-bot, oca-ci, aliciagarzo, Hugo
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-warehouse
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:45
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
product_product_form_view_reservation_button product.product.reservation.button product.product xpath Inherits product.product_normal_form_view
product_template_form_view_reservation_button product.template.reservation.button product.template xpath Inherits product.product_template_only_form_view
view_stock_reservation_form stock.reservation.form stock.reservation form New
view_stock_reservation_search stock.reservation.search stock.reservation search New
view_stock_reservation_tree stock.reservation.tree stock.reservation tree New
Models touched (3)

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)

New fields (3)
  • date_validity Date
    args: 'Validity Date'
  • move_id Many2one → stock.move
    index=True ondelete='cascade' readonly=True required=True args: 'stock.move', 'Reservation Move'
  • note Text
    string='Notes'
Public methods (9)
  • assign_waiting_confirmed_reserve_moves(self)
    @api.model
  • default_get(self, fields_list)
    @api.model
    Fix default values - Ensure default value of computed field `product_qty` is not set as it would raise an error - Compute default `location_id` based on default `picking_type_id`. Note: `default_picking_type_id` may be present in context, so code that looks for default `location_id` is implemented here, because it relies on already calculated default `picking_type_id`.
  • get_location_from_ref(self, ref)
    @api.model
    Get a location from a xmlid if allowed :param ref: tuple (module, xmlid)
  • open_move(self)
  • release_reserve(self)
    Release moves from reservation
  • release_validity_exceeded(self, ids=None)
    @api.model
    Release all the reservation having an exceeded validity date
  • reserve(self)
    Confirm reservations The reservation is done using the default UOM of the product. A date until which the product is reserved can be specified.
  • unlink(self)
    Release the reservation before the unlink
  • write(self, vals)
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/15.0/stock_reserve
VERSION
VERSION 1.2.1
CATEGORY
CATEGORYWarehouse
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSVíctor Martínez, Weblate, OCA-git-bot, oca-ci, Fernando La Chica
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-warehouse
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:33
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
product_product_form_view_reservation_button product.product.reservation.button product.product xpath Inherits product.product_normal_form_view
product_template_form_view_reservation_button product.template.reservation.button product.template xpath Inherits product.product_template_only_form_view
view_stock_reservation_form stock.reservation.form stock.reservation form New
view_stock_reservation_search stock.reservation.search stock.reservation search New
view_stock_reservation_tree stock.reservation.tree stock.reservation tree New
Models touched (3)

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)

New fields (3)
  • date_validity Date
    args: 'Validity Date'
  • move_id Many2one → stock.move
    index=True ondelete='cascade' readonly=True required=True args: 'stock.move', 'Reservation Move'
  • note Text
    string='Notes'
Public methods (9)
  • assign_waiting_confirmed_reserve_moves(self)
    @api.model
  • default_get(self, fields_list)
    @api.model
    Fix default values - Ensure default value of computed field `product_qty` is not set as it would raise an error - Compute default `location_id` based on default `picking_type_id`. Note: `default_picking_type_id` may be present in context, so code that looks for default `location_id` is implemented here, because it relies on already calculated default `picking_type_id`.
  • get_location_from_ref(self, ref)
    @api.model
    Get a location from a xmlid if allowed :param ref: tuple (module, xmlid)
  • open_move(self)
  • release_reserve(self)
    Release moves from reservation
  • release_validity_exceeded(self, ids=None)
    @api.model
    Release all the reservation having an exceeded validity date
  • reserve(self)
    Confirm reservations The reservation is done using the default UOM of the product. A date until which the product is reserved can be specified.
  • unlink(self)
    Release the reservation before the unlink
  • write(self, vals)
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/14.0/stock_reserve
VERSION
VERSION 2.1.2
CATEGORY
CATEGORYWarehouse
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSEnric Tobella, Víctor Martínez, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-warehouse
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
product_product_form_view_reservation_button product.product.reservation.button product.product xpath Inherits product.product_normal_form_view
product_template_form_view_reservation_button product.template.reservation.button product.template xpath Inherits product.product_template_only_form_view
view_stock_reservation_form stock.reservation.form stock.reservation form New
view_stock_reservation_search stock.reservation.search stock.reservation search New
view_stock_reservation_tree stock.reservation.tree stock.reservation tree New
Models touched (3)

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)

New fields (2)
  • date_validity Date
    args: 'Validity Date'
  • move_id Many2one → stock.move
    index=True ondelete='cascade' readonly=True required=True args: 'stock.move', 'Reservation Move'
Public methods (9)
  • assign_waiting_confirmed_reserve_moves(self)
    @api.model
  • default_get(self, fields_list)
    @api.model
    Fix default values - Ensure default value of computed field `product_qty` is not set as it would raise an error - Compute default `location_id` based on default `picking_type_id`. Note: `default_picking_type_id` may be present in context, so code that looks for default `location_id` is implemented here, because it relies on already calculated default `picking_type_id`.
  • get_location_from_ref(self, ref)
    @api.model
    Get a location from a xmlid if allowed :param ref: tuple (module, xmlid)
  • open_move(self)
  • release_reserve(self)
    Release moves from reservation
  • release_validity_exceeded(self, ids=None)
    @api.model
    Release all the reservation having an exceeded validity date
  • reserve(self)
    Confirm reservations The reservation is done using the default UOM of the product. A date until which the product is reserved can be specified.
  • unlink(self)
    Release the reservation before the unlink
  • write(self, vals)
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/13.0/stock_reserve
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYWarehouse
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Carlos Roca
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-warehouse
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:12
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
product_product_form_view_reservation_button product.product.reservation.button product.product xpath Inherits product.product_normal_form_view
product_template_form_view_reservation_button product.template.reservation.button product.template xpath Inherits product.product_template_only_form_view
view_stock_reservation_form stock.reservation.form stock.reservation form New
view_stock_reservation_search stock.reservation.search stock.reservation search New
view_stock_reservation_tree stock.reservation.tree stock.reservation tree New
Models touched (3)

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)

New fields (2)
  • date_validity Date
    args: 'Validity Date'
  • move_id Many2one → stock.move
    index=True ondelete='cascade' readonly=True required=True args: 'stock.move', 'Reservation Move'
Public methods (9)
  • assign_waiting_confirmed_reserve_moves(self)
    @api.model
  • default_get(self, fields_list)
    @api.model
    Fix default values - Ensure default value of computed field `product_qty` is not set as it would raise an error - Compute default `location_id` based on default `picking_type_id`. Note: `default_picking_type_id` may be present in context, so code that looks for default `location_id` is implemented here, because it relies on already calculated default `picking_type_id`.
  • get_location_from_ref(self, ref)
    @api.model
    Get a location from a xmlid if allowed :param ref: tuple (module, xmlid)
  • open_move(self)
  • release_reserve(self)
    Release moves from reservation
  • release_validity_exceeded(self, ids=None)
    @api.model
    Release all the reservation having an exceeded validity date
  • reserve(self)
    Confirm reservations The reservation is done using the default UOM of the product. A date until which the product is reserved can be specified.
  • unlink(self)
    Release the reservation before the unlink
  • write(self, vals)
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_reserve
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYWarehouse
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSPedro M. Baeza, Denis Roussel, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Weblate, OCA-git-bot, Andrius Preimantas, oca-ci
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:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - report
    - procurement
    - barcodes
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
product_product_form_view_reservation_button product.template.reservation.button product.product xpath Inherits product.product_normal_form_view
product_template_form_view_reservation_button product.template.reservation.button product.template xpath Inherits product.product_template_only_form_view
view_stock_reservation_form stock.reservation.form stock.reservation form New
view_stock_reservation_search stock.reservation.search stock.reservation search New
view_stock_reservation_tree stock.reservation.tree stock.reservation tree New
Models touched (3)

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)
    @api.multi

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)
    @api.multi

New fields (2)
  • date_validity Date
    args: 'Validity Date'
  • move_id Many2one → stock.move
    index=True ondelete='cascade' readonly=True required=True args: 'stock.move', 'Reservation Move'
Public methods (7)
  • default_get(self, fields_list)
    @api.model
    Fix default values - Ensure default value of computed field `product_qty` is not set as it would raise an error - Compute default `location_id` based on default `picking_type_id`. Note: `default_picking_type_id` may be present in context, so code that looks for default `location_id` is implemented here, because it relies on already calculated default `picking_type_id`.
  • get_location_from_ref(self, ref)
    @api.model
    Get a location from a xmlid if allowed :param ref: tuple (module, xmlid)
  • open_move(self)
    @api.multi
  • release(self)
    @api.multi
    Release moves from reservation
  • release_validity_exceeded(self, ids=None)
    @api.model
    Release all the reservation having an exceeded validity date
  • reserve(self)
    @api.multi
    Confirm reservations The reservation is done using the default UOM of the product. A date until which the product is reserved can be specified.
  • unlink(self)
    @api.multi
    Release the reservation before the unlink
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_reserve
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYWarehouse
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSPedro M. Baeza, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttp://www.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - report
    - procurement
    - barcodes
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
product_product_form_view_reservation_button product.template.reservation.button product.product xpath Inherits product.product_template_form_view
product_template_form_view_reservation_button product.template.reservation.button product.template xpath Inherits product.product_template_only_form_view
view_stock_reservation_form stock.reservation.form stock.reservation form New
view_stock_reservation_search stock.reservation.search stock.reservation search New
view_stock_reservation_tree stock.reservation.tree stock.reservation tree New
Models touched (3)

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)
    @api.multi

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)
    @api.multi

New fields (2)
  • date_validity Date
    args: 'Validity Date'
  • move_id Many2one → stock.move
    index=True ondelete='cascade' readonly=True required=True args: 'stock.move', 'Reservation Move'
Public methods (7)
  • default_get(self, fields_list)
    @api.model
    Fix default values - Ensure default value of computed field `product_qty` is not set as it would raise an error - Compute default `location_id` based on default `picking_type_id`. Note: `default_picking_type_id` may be present in context, so code that looks for default `location_id` is implemented here, because it relies on already calculated default `picking_type_id`.
  • get_location_from_ref(self, ref)
    @api.model
    Get a location from a xmlid if allowed :param ref: tuple (module, xmlid)
  • open_move(self)
    @api.multi
  • release(self)
    @api.multi
    Release moves from reservation
  • release_validity_exceeded(self, ids=None)
    @api.model
    Release all the reservation having an exceeded validity date
  • reserve(self)
    @api.multi
    Confirm reservations The reservation is done using the default UOM of the product. A date until which the product is reserved can be specified.
  • unlink(self)
    @api.multi
    Release the reservation before the unlink
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_reserve
VERSION
VERSION 0.2.0
CATEGORY
CATEGORYWarehouse
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSStéphane Bidoul, Yannick Vaucher, Alexandre Fayolle, Lionel Sausin, Joël Grand-Guillaume, Leonardo Pistone, Pedro M. Baeza, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Weblate, OCA-git-bot, Ismael Calvo, Alexandre MOREAU, Miku Laitinen, gfcapalbo, Giovanni Capalbo (Therp)
WEBSITE
WEBSITEhttp://www.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:21
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - report
    - 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_product_form_view_reservation_button product.template.reservation.button product.product xpath Inherits product.product_template_form_view
product_template_form_view_reservation_button product.template.reservation.button product.template xpath Inherits product.product_template_only_form_view
view_stock_reservation_form stock.reservation.form stock.reservation form New
view_stock_reservation_search stock.reservation.search stock.reservation search New
view_stock_reservation_tree stock.reservation.tree stock.reservation tree New
Models touched (3)

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)
    @api.multi

New fields (1)
  • reservation_count Float
    compute='_compute_reservation_count' string='# Sales'
Public methods (1)
  • action_view_reservations(self)
    @api.multi

New fields (2)
  • date_validity Date
    args: 'Validity Date'
  • move_id Many2one → stock.move
    ondelete='cascade' readonly=True required=True select=1 args: 'stock.move', 'Reservation Move'
Public methods (7)
  • default_get(self, fields_list)
    @api.model
    Ensure default value of computed field `product_qty` is not set as it would raise an error
  • get_location_from_ref(self, ref)
    @api.model
    Get a location from a xmlid if allowed :param ref: tuple (module, xmlid)
  • open_move(self)
    @api.multi
  • release(self)
    @api.multi
    Release moves from reservation
  • release_validity_exceeded(self, ids=None)
    @api.model
    Release all the reservation having an exceeded validity date
  • reserve(self)
    @api.multi
    Confirm a reservation The reservation is done using the default UOM of the product. A date until which the product is reserved can be specified.
  • unlink(self)
    @api.multi
    Release the reservation before the unlink
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/7.0/stock_reserve
VERSION
VERSION 0.1
CATEGORY
CATEGORYWarehouse
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSGuewen Baconnier, Alexandre Fayolle
WEBSITE
WEBSITEhttp://www.camptocamp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:13
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - process
    - web
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - account
    - analytic
    - board
    - edi
    - email_template
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Stock Reserve
=============

Allows to create stock reservations on products.

Each reservation can have a validity date, once passed, the reservation
is automatically lifted.

The reserved products are substracted from the virtual stock. It means
that if you reserved a quantity of products which bring the virtual
stock below the minimum, the orderpoint will be triggered and new
purchase orders will be generated. It also implies that the max may be
exceeded if the reservations are canceled.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
product_form_view product.product.form.reserve product.product xpath Inherits procurement.product_form_view_procurement_button
view_stock_reservation_form stock.reservation.form stock.reservation form New
view_stock_reservation_search stock.reservation.search stock.reservation search New
view_stock_reservation_tree stock.reservation.tree stock.reservation tree New
Models touched (2)

New fields (0)

No new fields.

Public methods (1)
  • open_stock_reservation(self, cr, uid, ids, context=None)

New fields (0)

No new fields.

Public methods (8)
  • get_location_from_ref(self, cr, uid, ref, context=None)
    Get a location from a xmlid if allowed :param ref: tuple (module, xmlid)
  • onchange_product_id(self, cr, uid, ids, product_id=False, context=None)
  • onchange_quantity(self, cr, uid, ids, product_id, product_qty, context=None)
    On change of product quantity avoid negative quantities
  • open_move(self, cr, uid, ids, context=None)
  • release(self, cr, uid, ids, context=None)
  • release_validity_exceeded(self, cr, uid, ids=None, context=None)
    Release all the reservation having an exceeded validity date
  • reserve(self, cr, uid, ids, context=None)
    Confirm a reservation The reservation is done using the default UOM of the product. A date until which the product is reserved can be specified.
  • unlink(self, cr, uid, ids, context=None)
    Release the reservation before the unlink
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/stock-logistics-reservation
PULL REQUEST
PULL REQUEST[19.0][MIG] stock_reserve: Migration to 19.0 (#59)