Odoo inventory guide

Multi-warehouse replenishment and stock transfers in Odoo

When one warehouse is short and another has spare stock, moving it is usually cheaper than buying more. This guide covers how Odoo resupplies between warehouses, where it stops, and what transfer-before-buy adds.

Updated June 30, 2026 · by Niyu Labs · about 6 min

The imbalance problem

Run more than one warehouse and stock never sits where demand is. One location is short while another holds a surplus of the same product.

The instinct is to buy more for the short location, but that spends cash and adds stock the network already owns. The better first move is a transfer: take the surplus a healthy warehouse can spare and send it where it is needed, and only buy what is still missing after that. Doing this well is what separates a network that runs lean from one that overstocks in three places at once.

How Odoo resupplies between warehouses

Odoo has a built-in route for moving stock from one warehouse to another.

  1. 1

    Enable resupply on the warehouse

    In Inventory then Configuration then Warehouses, turn on Resupply From and choose the warehouse that will supply this one.

  2. 2

    Add a 0/0 reordering rule on the route

    Create a reordering rule at the receiving warehouse with the resupply route, so a need triggers a move from the chosen source.

  3. 3

    Let it create the two pickings

    When triggered, Odoo creates a delivery from the supplying warehouse and a receipt at the destination, with the goods in inter-warehouse transit between them.

Reference

This follows Odoo's inter-warehouse replenishment documentation. The route appears as a supply line from the source warehouse to the one being replenished.

Where native resupply stops

The route works, but it is a fixed pipe, not a planning decision.

  • It moves from one source warehouse you choose in advance, not the best one today
  • It does not weigh the cost of a transfer against the cost of buying
  • It does not gather spare stock from several warehouses at once
  • It does not protect the source warehouse's own coverage before sending

For a simple hub-and-spoke setup, where a central warehouse always feeds the satellites, that is enough. For a real network where any location might be the best donor on a given day, you want the move chosen from the current picture, not wired in advance.

Transfer before buy

Move what you already own first, then buy only the gap that is left.

Transfer-before-buy is a decision, made fresh each time. A warehouse is short 80 units. Another has 30 it can spare above its own needs. The plan is to transfer 30 and buy 50, not to buy 80 and leave the spare 30 sitting idle.

Short 80 unitsTransfer 30 Buy 50

Multi-donor allocation, with the source protected

When no single warehouse can cover the shortage, pull from several at once.

Niyu Smart Stock checks every warehouse before it buys. It takes only the surplus each one holds above its own protected coverage, so a transfer never creates a stockout at the source, and it can combine several donors to cover a larger shortage. A fully covered need becomes a transfer, a partly covered one becomes a transfer plus a smaller buy, and it rechecks live stock at the moment you create the move. Then it creates the real Odoo internal transfer and the draft purchase for the remaining gap, linked back to the line for approval.

The difference in one line

Native resupply moves stock along a pipe you set up. Transfer-before-buy decides, today, which warehouses should give, how much they can spare, and what is still worth buying.

Frequently asked questions

How do you transfer stock between warehouses in Odoo?+

Natively, you enable Resupply From on the receiving warehouse, pick a single source warehouse, and add a reordering rule on the resupply route. When the rule triggers, Odoo creates a delivery from the source and a receipt at the destination, with the stock in inter-warehouse transit in between.

Can Odoo decide between a transfer and a purchase?+

Not on its own. Native resupply moves stock along a route you predefine to one source warehouse. It does not compare the cost of moving spare stock against buying new, and it does not gather stock from several warehouses at once.

What is transfer-before-buy?+

It is the rule that you should move spare stock you already own before you spend cash buying more. When one warehouse is short and another has a surplus above its own needs, a transfer is usually cheaper and faster than a purchase order.

What is multi-donor allocation?+

When no single warehouse can cover a shortage, a multi-donor plan pulls smaller surpluses from several warehouses at once, taking only the stock each one can spare above its own protected coverage. It is how you rebalance a network rather than a single pair of locations.

How does Niyu Smart Stock handle warehouse transfers?+

It checks every warehouse before it buys, protects each donor's own coverage, allocates across multiple donors, and recommends a transfer, a purchase, or a split of both. It then creates the actual Odoo internal transfer and the draft purchase for the remaining gap, linked back to the line.

See it plan your Odoo stock, on the free tier

Install the module, run it on your own data, and compare the recommendations before you commit. No card required.

See everything Niyu Smart Stock does