Skip to Content

1 Sale = 1 Purchase Order

Configure Odoo to avoid catch-all purchase orders and keep clear traceability, sale by sale.
October 7, 2025 by
1 Sale = 1 Purchase Order
ANOR, Cyrille de LAMBERT

Auguria News

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

  1. Dropshipping: the sale generates a linked purchase and the delivery goes from the vendor to the customer.
  2. 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

Propagation du groupe d’approvisionnement — les 3 états

  • 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)

  1. Sale A (same vendor) → confirm → Purchase A.
  2. Sale B (same settings) → confirm → Purchase B.
  3. In each purchase, check the procurement group: it must match the sale (separation OK).

Dropshipping test (direct delivery)

  1. Sale C (dropshipped product) → confirm → Purchase C linked to the sale.
  2. 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.

in Blog
1 Sale = 1 Purchase Order
ANOR, Cyrille de LAMBERT October 7, 2025
Share this post
Tags
Our blogs

Updated on 04/01/2026

A question about your project? Talk to a consultant.

Book 30 minutes