By default, Odoo readily groups purchase orders by vendor. That is convenient for reducing the number of documents… but mixing several sales in the same purchase order creates operational problems:
- prioritization of receipts and backorders (who to deliver first),
- confusing allocation/reservation at the dock,
- less readable sale → purchase → receipt link,
- lead time changes or cancellations that affect several customers at once,
- heavier vendor reconciliation.
In short, analytic accounting is not enough: it spreads the costs, but does not solve the logistics. The simplest approach is to get 1 sale = 1 purchase order (per vendor).
The principle with two standard options
- Dropshipping: the sale generates a linked purchase and the delivery goes from the vendor to the customer.
- Replenish on Order (MTO) + Buy: the sale triggers its own purchase, received at your site.
Separation by sale is guaranteed when the Propagation of Procurement Group on the Buy rule is set to Propagate.
Setup — what to enable (2 minutes)
Menu: Inventory → Configuration → Settings
If the vendor delivers to the customer (dropshipping)
- Logistics: Dropshipping
- Warehouse: Use your own routes
If you receive the goods yourself (MTO + Buy)
- Logistics: Replenish on Order (MTO)
- Warehouse: Use your own routes
(The other boxes — quality, barcodes, shipping carriers, etc. — do not affect separation by sale.)
Setup by option
A — Dropshipping: vendor → customer
Product form
- Purchase: at least one vendor.
- Inventory: check Dropship.
Sale
- On confirmation: creation of a dedicated purchase for the sale; delivery to the customer.
Advantage: no routing through your warehouse.
B — MTO + Buy: receipt at your site
Product form
- Purchase: vendor defined.
- Inventory: check Replenish on Order (MTO) and Buy.
“Buy” route rule
- Menu: Inventory → Configuration → Routes → Rules → open Buy.
- Propagation section: set Propagation of Procurement Group = Propagate.
→ The sale’s “label” is passed on to the purchase: no merging between sales with the same vendor.
Propagation of Procurement Group — the 3 states

- Leave Empty: does not pass on the sale’s label → grouping between sales is possible (useful for pooling).
- Propagate: passes on the sale’s label → separation by sale (what we want).
- Fixed: forces a single label for everything → mega-grouping (to be reserved for exceptional centralizations).
Memo: clean by sale → Propagate; pooling → Leave Empty; gather everything → Fixed.
Validation tests (5 minutes)
MTO + Buy test (receipt at your site)
- Sale A (same vendor) → confirm → Purchase A.
- Sale B (same settings) → confirm → Purchase B.
- In each purchase, check the procurement group: it must match the sale (separation OK).
Dropshipping test (direct delivery)
- Sale C (dropshipped product) → confirm → Purchase C linked to the sale.
- Delivery to the customer (not to your warehouse).
Best practices
- If you want 100% MTO, avoid reordering rules on these products (otherwise Odoo reverts to a “stock” logic that groups orders).
- Set the products to Storable if you receive the goods yourself (required for receipts).
- A product with several vendors can generate several purchases for the same sale: this is normal (one purchase per vendor).
- Multi-warehouse / multi-company / different currencies or vendors: separation is natural.
Quick troubleshooting
Two sales end up in the same purchase
- Is the Buy rule properly set to Propagate?
- Is the product properly set to MTO + Buy (or Dropshipping)?
- Is there no reordering rule triggering a “stock” flow?
No purchase is created
- Is the vendor defined on the product?
- Is the sales order properly confirmed?
- MTO/Dropshipping and Routes enabled?
- The receipt arrives at the wrong location
Check the Destination Location of the Buy rule (and for dropshipping: destination = customer).
Conclusion
Grouping by vendor simplifies paperwork, but complicates execution: receipt priorities, allocation, document traceability, changes along the way. The simplest, standard solution is to separate by sale:
- Dropshipping: purchase linked to the sale, delivery to the customer.
- MTO + Buy: purchase dedicated to the sale, receipt at your site.
The key to avoiding any mixing: in Buy, set Propagation of Procurement Group = Propagate.
Result: 1 sale = 1 purchase order (per vendor), clear receipts, and calm teams.