Odoo's Purchase app covers more than most people expect, and stops earlier than most finance teams realise. This guide covers both sides for Odoo 19: what you get out of the box, and the limitations that push mid-market teams to add a procurement layer.
What Odoo does well
- Vendor pricelists auto-populate prices and lead times on new orders.
- A proper RFQ workflow with To Send, Waiting, and Late statuses on the dashboard.
- One-click confirmation from draft RFQ to purchase order, with receipts created automatically if Inventory is installed.
- Bill control per product: bill on ordered quantities for services and deposits, on received quantities for goods.
- 3-way matching that blocks payment until goods are actually received.
- Purchase Agreements for blanket orders and calls for tenders, plus solid purchase, vendor cost, and procurement expense reports.
The real strength is the connection to Inventory and Accounting. If you run Odoo as your ledger, purchasing inside it means no integration project.
Where Odoo's procurement stops
| Limitation | What it means day to day |
|---|---|
| No internal requisitions | Requesters email or message; a buyer re-types the need. No budget check or trail before the RFQ. |
| No native PO approval | Confirm Order is one click. Community workaround is access rights; Enterprise path is Studio approval rules. |
| Quotes live outside Odoo | Suppliers quote by email or WhatsApp and get re-entered manually, so comparison quality depends on the buyer. |
| Controls are role-based | User rights and bill control exist, but amount thresholds, routing, and delegated approvals don't. |
| Reporting is document-centric | PO, receipt, and bill analysis is strong; budget-vs-committed spend before a PO is not modelled. |
Calls for tenders: the closest thing to sourcing
Odoo's Purchase Agreements feature (the module is literally named purchase_requisition, which is where the confusion starts) supports alternative RFQs: create them per vendor from the Alternatives tab, use Compare Product Lines to see prices side by side, and award individual lines to different vendors.
Its limits are worth knowing: it starts after a draft PO exists, there is no internal request step, and every supplier line must be entered by hand. It structures a comparison you have already gathered — it doesn't run the sourcing.
When Odoo is enough
Odoo alone works well for a small buying team with simple, consistent requests and mostly repeat or catalog spend. If that's you, invest in pricelists, agreements, and discipline rather than more software.
When Odoo alone isn't enough
Adding a separate sourcing layer is worth considering when several of these are true:
- Multiple departments raise requests and procurement can't see demand early.
- Approvals need an evidence trail, not a chatter line.
- Three or more quotes are compared on the same line items regularly.
- Finance wants committed spend visible before the PO reaches the ledger.
- Auditors ask how an award was decided.
Keep Odoo as the ledger either way — it is the right place for orders, receipts, bills, and payments. The question is only where the request, approval, and quote comparison live. If you do add a layer, look for one that syncs confirmed purchase orders back to Odoo rather than asking you to migrate your accounting.
Bottom line
Odoo is a good system for buying: orders, receipts, bills, payments. It was not designed to govern demand: requests, sourcing, and approvals. Know which half you are missing before you customize Odoo to fit the other one.

