Odoo Community Association

Stock Quant Lock

Beta License: AGPL-3 OCA/stock-logistics-workflow Translate me on Weblate Try me on Runboat

This module adds a quant lock mechanism based on standard stock reservations. When a quant is locked, its non-reserved quantity is reserved by a dedicated stock picking so it cannot be consumed by other operations.

The lock operation is done through a selectable route explicitly configured for quant locking: the push rule of the route defines the operation type, the destination and the grouping of the lock transfer. Unlocking cancels the lock picking, which releases the corresponding reservation while keeping full traceability through standard Odoo stock documents.

Table of contents

Use Cases / Context

Warehouse teams sometimes need to temporarily protect specific stock from standard reservations, for example for quality checks, customer claims, investigation, or internal allocation decisions. In standard usage, free stock can still be consumed by other transfers, which makes these temporary holds hard to enforce and hard to audit.

This module addresses that business need by using native Odoo reservation mechanisms instead of introducing a parallel lock system. A dedicated lock transfer is created and reserves the free quantity of a selected quant. Because the lock is represented as standard stock documents, operations teams keep full traceability and can reuse native stock workflows for review.

The module is especially useful in multi-user environments where concurrent reservations are frequent and temporary stock holds must remain explicit, reversible, and auditable.

Configuration

A Quality Check route is created for each warehouse. It locks quants of any location of the warehouse with a dedicated Quality Check operation type to the Quality Check location of the warehouse. It can be used as is or adapted, and is the simplest way to start using this module.

To configure other lock routes, you need to:

  • Go to Inventory > Configuration > Routes.
  • Create or open the route that will be used for quant locking.
  • Enable Allow quant lock.
  • Add a Push To rule. Its source location must contain the locations of the quants to lock, its destination location and operation type define the lock transfer. The Reservation Method of this operation type must be At Confirmation.

When several rules of the route match the location of a quant, the rule with the most specific source location is used, then the rule sequence. As for any rule, the Propagation of Procurement Group option of the rule defines how lock moves are grouped into transfers.

Only routes with Allow quant lock enabled can be selected when locking quants.

Usage

To use this module, you need to:

  • Go to Inventory > Reporting > Locations (or any inventory quant view).
  • Open the quant to lock.
  • Click Lock Quant.
  • In the wizard, select a route configured for quant locking.
  • Confirm.

For batch operations from list views:

  • Select several quants.
  • Use Action > Lock Quants and confirm the wizard.
  • To release several locks at once, select locked quants and use Action > Unlock Quants.

The quant form also includes a Lock Moves smart button that opens the complete history of moves linked to the quant lock.

After confirmation, a lock picking is created and reserved. The quant displays the linked lock picking.

To unlock, open the same quant and click Unlock Quant. The lock picking is cancelled and the reservation is released.

Known issues / Roadmap

  • Add a dedicated smart button on quants to open lock transfer history.
  • Add optional reason and expiration date on lock operations.
  • Add optional security groups to restrict lock and unlock operations.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • ACSONE SA/NV
  • BCIM

Contributors

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainers:

lmignon jbaudoux

This module is part of the OCA/stock-logistics-workflow project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.