Skip to Content
Menu
This question has been flagged
3 Replies
149 Views

HI

i have trobling with store Replenishment rules (inventory->Operations->Replenishment):

i have store A with no goods

and store B with 20 pieces


when i have order for 50 pieces from store A i wish to move 20 pieces from store B and buy rest 30


no mater what i try it moves 50 pieces from B, or buy 50 pieces


Has anyone been able to do this successfully?  If so, can you please share how this was done?  Thank you so much for your assistance.


I'm using Odoo 19

Avatar
Discard
Best Answer

Hi,


By default, Odoo does not automatically split replenishment between internal stock and purchase — it will either:

    Take from one source location (e.g., store B) until exhausted, or

    Create a purchase order if the source is empty, depending on the replenishment route.

Odoo doesn’t natively split the order automatically into partial internal transfer + purchase; this requires proper route and rules configuration.

Follow the steps:

    Check your routes

        Go to Inventory → Configuration → Routes.

        You need a route that combines:

            Take from another warehouse (internal transfer)

            Buy from vendor if insufficient stock

        Odoo calls this “Pull from another location then Buy” logic. The route must have two rules in sequence:

            Move from another warehouse (source: store B → destination: store A)

            Buy (make to order) if stock is insufficient

    Set up the replenishment rules

        Inventory → Operations → Replenishment

        For product X, set the minimum quantity at store A (e.g., 0) and the maximum quantity (e.g., 50).

        Set the route to the one created above (“Take from another warehouse then Buy”).

    Check push/pull rules

        The push/pull rules define how stock moves are executed:

            Pull rule: from store B → store A

            Pull rule: from vendor → store A

    Confirm warehouse configuration

        Make sure store A and store B belong to warehouses with proper inter-warehouse rules.

        Odoo uses inter-company and warehouse rules to generate the stock moves correctly.


Hope it helps

Avatar
Discard
Best Answer

Hello Dmytro,



  The behavior you're experiencing is likely due to how Odoo's replenishment rules and routes are configured. By default, Odoo tries to fulfill the entire demand from one source if possible.

  To achieve your desired outcome (transfer 20 from Store B and buy the remaining 30), you'll need to configure your routes and rules accordingly. Here’s a breakdown:

  First, ensure you have two separate routes:
    One route to trigger a transfer from Store B to Store A.
    Another route to trigger a purchase order for Store A.

  Next, configure the replenishment rule for Store A:
    Set the "Supply Method" to "Take from Stock" for the route from Store B.
    Create a second replenishment rule for Store A with "Buy" as the supply method, ensuring it triggers only when the stock in Store A (after the transfer from Store B) is insufficient.

  You might need to adjust the sequence of these rules to ensure the transfer happens before the purchase order is triggered.


For personalized assistance:
https://www.pragtech.co.in/contact-us-mql.html

Avatar
Discard
Best Answer

Assuming replenishment is set to manual, the 'To order' field can be modified to required to value.

In your example - set route to 'buy' and To order to 30 prior to triggering order

Post PO creation the To Order would set to 20 (remaining qty), change the route (Store B to Store A) and trigger order again.


If replenishment trigger is set to auto, only a single route with all of the qty can be triggered.

If the process is to always take from alternate store prior to ordering, you could consider modifying  the delivery route to accordingly.

eg configure rules as

Pull from Store A to customer (supply method take from stock if unavailable trigger another route)

Pull from Store B to Store A (supply method take from stock)

With the above route, 20 qty would be taken from Store B and balance 50 would be replenished with a buy

Avatar
Discard