You use this module if you wish to give notification of requirements of materials and/or external services and keep track of such requirements.
Requests can be created either directly or indirectly. "Directly" means that someone from the requesting department enters a purchase request manually.
The person creating the request determines what and how much to order, and the requested date.
"Indirectly" means that the purchase request initiated by the application automatically, for example, from procurement orders (MO, SO).
A purchase request is an instruction to Purchasing to procure a certain quantity of materials services, so that they are available at a certain point in time.
A line of a request contains the quantity and requested date of the material to be supplied or the quantity of the service to be performed. You can indicate the service specifications if needed.
Once request is approved go to the Purchase Request Lines from the menu entry 'Purchase Requests', and also from the 'Purchase' menu.
Select the lines that you wish to initiate the RFQ for, then go to 'More' and press 'Create RFQ'.
You can choose to select an existing RFQ or create a new one. In the later, you have to choose a supplier.
In case that you chose to select an existing RFQ, the application will search for existing lines matching the request line, and will add the extra quantity to them, recalculating the minimum order quantity, if it exists for the supplier of that RFQ.
In case that you create a new RFQ, the request lines will also be consolidated into as few as possible lines in the RFQ.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Lets users create purchase requests for materials or services, follow them through approval, and turn them into requests for quotation or purchase orders while tracking how much has been ordered and received.
This module adds a Purchase Request area to Odoo's purchasing menu. A user creates a request with a reference, a requester, an approver, a source document and a list of products to purchase, each with quantity, unit of measure, needed date and an estimated cost. The request shows a total estimated cost and counters for lines, stock moves and purchases.
Requests move through statuses: Draft, To be approved, Approved, In progress, Done and Rejected. A request can only be sent for approval if it has at least one non-cancelled line with a quantity; otherwise an error is shown. Once a request leaves draft it becomes read-only, and it can only be deleted while in draft. If all its lines are cancelled, the request is automatically rejected.
From the request lines a wizard creates a request for quotation or adds lines to an existing purchase order, optionally matching existing lines by scheduled date. Each request line then shows the ordered quantity, the purchase status, quantities in progress, done and cancelled, and whether some quantity still needs to be bought. A preferred supplier is suggested from the product's supplier list.
Products can be flagged so that procurement generates a purchase request instead of a quotation. Receipts and order confirmations post messages on the request, and cancelling a stock move that came from a request creates a to-do activity. A printable Purchase Request report is included, and access is controlled by Purchase Request User and Manager groups.
Depends on
Required by other modules
Menus it adds
Models and fields (11)
- stock.move · extends an existing modelpurchase_request_ids, purchase_request_allocation_ids, created_purchase_request_line_id
- stock.rule · extends an existing model
- purchase.order · extends an existing model
- stock.move.line · extends an existing model
- product.template · extends an existing modelpurchase_request
- purchase.request · new modelname (Request Reference), state (Status), origin (Source Document), line_ids (Products to Purchase), company_id, date_start (Creation date), line_count (Purchase Request Line count), move_count (Stock Move count), product_id (Product), assigned_to (Approver), currency_id, description, is_editable, requested_by, estimated_cost (Total Estimated Cost), purchase_count (Purchases count), picking_type_id, is_name_editable, to_approve_allowed
- purchase.order.line · extends an existing modelpurchase_request_lines, purchase_request_allocation_ids
- purchase.request.line · new modelname (Description), origin (Source Document), qty_done, cancelled, company_id (Company), date_start, product_id, qty_to_buy (There is some pending qty to buy), request_id (Purchase Request), assigned_to (Assigned to), currency_id, description (PR Description), is_editable, product_qty (Quantity), supplier_id (Preferred supplier), requested_by (Requested by), date_required (Request Date), move_dest_ids (Downstream Moves), orderpoint_id, purchased_qty (RFQ/PO Qty), qty_cancelled, request_state (Request state), estimated_cost, product_uom_id (UoM), purchase_lines (Purchase Order Lines), purchase_state (Purchase Status), specifications, qty_in_progress, pending_qty_to_receive (Pending Qty to Receive), purchase_request_allocation_ids
- purchase.request.allocation · new modelcompany_id, product_id (Product), stock_move_id, product_uom_id (UoM), purchase_state, open_product_qty (Open Quantity), purchase_line_id, allocated_product_qty (Allocated Quantity), purchase_request_line_id, requested_product_uom_qty (Requested Quantity)
- purchase.request.line.make.purchase.order · new modelitem_ids, supplier_id, purchase_order_id, sync_data_planned (Match existing PO lines by Scheduled Date)
- purchase.request.line.make.purchase.order.item · new modelname (Description), wiz_id (Wizard), line_id (Purchase Request Line), product_id (Product), request_id (Purchase Request), product_qty (Quantity to purchase), product_uom_id (UoM), keep_description (Copy descriptions to new PO)
Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 8 confirmed, 1 with no information of 9 versions.
Sources · Odoo 17.0
Confirmed on 2026-11-03 in branch 17.0 of OCA/purchase-workflow.
terminal Installation and usage
OCA documentation · Odoo 19.0Configuration
Source · Odoo 19.0To configure the product follow this steps:
- Go to a product form.
- Go to Inventory tab.
- Check the box Purchase Request along with the route Buy and Replenish on Order (MTO)
Note that MTO route is archived by default, you should unarchive it first:
- Go to Inventory > Configuration > Routes, in the Search dropdown menu, click Archived to show Replenish on Order (MTO) route and Unarchive it.
With this configuration, whenever a procurement order is created and the supply rule selected is 'Buy' the application will create a Purchase Request instead of a Purchase Order.
Usage
Source · Odoo 19.0Purchase requests are accessible through a new menu entry 'Purchase Requests', and also from the 'Purchase' menu.
Users can access the list of Purchase Requests or Purchase Request Lines.
It is possible to filter requests by its approval status.
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.