Skip to Content

Odoo Procurement Group Explained

The Hidden Link Between Sales, Purchase, and Stock Moves
November 2, 2025 by
Odoo Procurement Group Explained
Arij Shahla

Ever noticed the Procurement Group (group_id) field in Odoo and wondered what it actually does? It’s not just another technical field — it’s the hidden link that ties your Sales Orders, Purchase Orders, Manufacturing Orders, and Stock Moves together. This connection is what keeps your Odoo supply chain in sync, ensuring every step — from customer demand to final delivery — remains traceable.

In this post, we’ll explore what the Procurement Group is, how it propagates, and why it’s critical for achieving smooth, automated fulfillment flows in Odoo.

What Is a Procurement Group in Odoo?

In Odoo, a Procurement Group is a unique identifier (group_id) that links all operations related to a specific demand.

When a Sales Order is confirmed, Odoo creates a Procurement Group (e.g., SO001). This group ID is then assigned to all related stock moves, purchase orders, and manufacturing orders generated by that sales order.

In simple terms: The Procurement Group acts as a thread that connects all documents in one fulfillment flow.

How Odoo Fills the Procurement Group Field

Here’s how different operations in Odoo handle the group_id:

  1. Sales Orders: When confirmed, a new group (e.g., SO001) is created and attached to all related stock moves and purchase orders.
  2. Manufacturing Orders (MTO): If triggered by a sales order, they inherit the same group.
  3. Purchase Orders (MTO or Drop Shipping): Inherit the group from the originating sales order.
  4. Reordering Rules (Make to Stock): No group is created since the replenishment isn’t tied to a specific demand.

This consistency ensures traceability and demand-driven automation across your supply chain.

What Is Procurement Group Propagation?

Procurement Group Propagation is the process by which Odoo passes the same group_id from one document to another — ensuring all related records share the same origin.

For example: A Sales Order creates a Procurement Group → that group is propagated to the Purchase Order → which passes it to related Stock Moves.

This is how Odoo maintains end-to-end traceability.

Step-by-Step: How Group Propagation Works

Let’s break it down:

Sales Order Confirmation:

  • A new Procurement Group is created.
  • The group is assigned to the originating stock moves.

Procurement Rule Execution:

  • Procurement Rules from routes decide how the demand is fulfilled (Buy, Manufacture, or Transfer).
  • During this process, the group_id is propagated to new records.

Purchase or Manufacturing Creation

  • The resulting Purchase Order or Manufacturing Order inherits the same group_id.

Stock Moves and Transfers

  • All stock moves generated downstream keep the same group, maintaining full traceability.

Route Settings: Controlling Propagation

Propagation behavior in Odoo is controlled at the Route level. When editing a route (e.g., “Buy” or “Manufacture”), you’ll find options like:

  • Propagate Procurement Group: ✔️
  • Propagate Warehouse: ✔️
  • ✅ If “Propagate Procurement Group” is enabled → the group_id is inherited.
  • ❌ If disabled → Odoo creates a new group, breaking the link.

This flexibility allows you to control how tightly your flows are connected — ideal for complex multi-warehouse or intercompany setups.

Example: End-to-End Procurement Flow

  • Step Document: Sales Order (SO001) → Group ID: SO001 → Propagation: Group created
  • Step Document: Purchase Order → Group ID: SO001→ Propagation: Group inherited
  • Step Document: Incoming Shipment→ Group ID:SO001→ Propagation: Group inherited
  • Step Document: Delivery Order → Group ID: SO001→ Propagation: Group inherited

Every document is tied to the same Procurement Group, ensuring full traceability.

When Propagation Doesn’t Occur

There are cases where Odoo doesn’t propagate the group:

  • The route or rule doesn’t have “Propagate Procurement Group” enabled.
  • The document was created manually.
  • The product uses Make to Stock (MTS) instead of Make to Order (MTO).

In these scenarios, Odoo either creates a new group or leaves the field empty.

Why Procurement Group & Propagation Matter

  • Traceability: Easily track every operation from Sales Order to Delivery.
  • Debugging: Quickly identify breaks in fulfillment chains.
  • Reporting: Group-based analysis for clearer visibility.
  • Automation: Keeps routes, stock moves, and purchases aligned.

Pro Tip: Debugging with Developer Mode

To see Procurement Groups in action:

  • Activate Developer Mode
  • Open any Sales, Purchase, or Stock Move record
  • Check the Procurement Group field

This helps confirm whether propagation is working correctly — and where it might be broken.

Key Takeaways

  • The Procurement Group is the backbone of Odoo’s fulfillment flow.
  • Propagation ensures that the same group travels through all related documents.
  • Controlled via routes and rules, it gives flexibility for different fulfillment strategies.
  • Proper setup = full traceability, better automation, and smoother operations.