OdooWiki OCA HUB

Stock Move Source Relocation

stock_move_source_relocate folder_open OCA/stock-logistics-workflow open_in_new
Warehouse Management License: AGPL-3

Relocate source location of unconfirmed moves

Add relocation rules for moves.

Some use cases:

  • Handle all the replenishments at the same place
  • Trigger minimum stock rules or DDMRP buffers in one location

Behavior:

  • When we try to assign a stock move and the move is not available, a rule matching the source location (sub-locations included), the picking type and an optional domain is searched
  • If a relocation is found, the move source location is updated with the new one
  • If the move was partially available, it is split in 2 parts:

> - one available part which keeps its source location > - one confirmed part which is updated with the new source location

Notes:

Goes well with stock_available_to_promise_release. When using the mentioned module, we assume that we release moves (which creates the whole chain of moves) only when we know that we have the quantities in stock (otherwise the module splits the delivery). So generally, we have the goods are available, but maybe not at the correct place: this module is handy to organize internal replenishments.

Compatible with stock_dynamic_routing: when the source location is updated by this module, a dynamic routing may be applied.

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Create rules that automatically change the source location of stock moves when the goods are not available in the original location, so picking operations can be fulfilled from another sub-location.

This module adds a new configuration screen called Source Relocation, found under Inventory > Configuration > Warehouse Management. There you create rules that tell Odoo: when a stock move of a given operation type starts from a certain location and cannot be reserved, move it to another location instead.

Each rule defines the original location, the operation type (for example delivery orders or internal transfers), the destination location to relocate to, and an optional filter (domain) to limit which moves the rule applies to. The relocation location must be a sub-location of the original one, otherwise Odoo shows a validation error. Rules have a sequence so you can prioritise them, and a live description explains in plain words what the rule does.

When Odoo tries to reserve stock for a move and the goods are not available, it looks for a matching rule. If one is found, the move's source location is changed to the relocation location. If the move was only partially available, it is split: the available part keeps its original source location, and a new confirmed move is created for the missing quantity using the relocation location. Moves that are already picked or whose transfer has been printed are not relocated. After relocation, moves belonging to the same transfer are merged where possible.

Only stock users can view the rules; stock managers can create, edit and delete them.

Menus it adds

menu_stock_source_relocate
Models and fields (2)
  • stock.move · extends an existing model
  • stock.source.relocate · new modelactive, sequence, company_id, location_id, rule_domain, rule_message, picking_type_id, relocate_location_id

Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 3 confirmed, 6 with no information of 9 versions.

terminal Installation and usage

OCA documentation · Odoo 18.0

The configuration of the source relocations is done in "Inventory \> Configuration \> Source Relocation".

Creation of a rule:

Properties that define where the rule will be applied:

  • Location: any unreserved move in this location or sub-location is relocated
  • Picking Type: any unreserved move in this picking type is relocated
  • Rule Domain: filter the moves to relocate with arbitrary domains

Note: all of the above must be met to relocate a move.

The Relocate Location field defines what the move source location will be changed to. It must be a sub-location of the location.

No verified information in OCA: Installation, Usage.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.