ERPNext Guides

ERPNext Material Request: Types, the Buying Flow & Common Fixes (2026)

Which Material Request Type to use, how it flows to a Purchase Order, how partial fulfilment works, and why 'Create Purchase Order' sometimes does nothing — an interactive guide with a type picker and buying-cycle walkthrough.

MManojJuly 28, 202610 min read
#erpnext#buying#procurement#material-request
Share

A Material Request is ERPNext's purchase requisition — the internal "we need these items" that starts the buying cycle. Most of the confusion around it comes down to one field: the Material Request Type. Pick the wrong one and "Create Purchase Order" is greyed out, or your request quietly turns into a stock transfer instead of an order. This guide shows which Type to use, how the request flows to a PO, how partial fulfilment works, and how to fix the moments it stalls.

Want the request raised automatically?

If you're tired of raising Material Requests by hand every time stock runs low, the ERPNext auto-reorder guide shows how to make stock levels create the Purchase request for you.

The Material Request Type is the single field that decides whether you get a Purchase Order or a Stock Entry — and most "it won't let me order" tickets are just the wrong Type. I am Manoj, ERPNext and Frappe implementation lead at Mith Tech in Bengaluru; we wire the buying cycle on every distribution and manufacturing go-live.

The Type field decides everything

A Material Request in ERPNext isn't only a purchase requisition — the Material Request Type repurposes the same document for five different jobs, and only one of them buys anything. Per the official documentation, the Type controls what the request can become downstream. Pick it first; everything else follows.

InteractiveMaterial Request Type Pickerlink

Select a Material Request Type to see when to use it and which document it flows into.

Pick the Material Request Type to see when to use it and where it flows.

The practical rule: use Purchase for anything you'll order from a supplier. Material Transfer moves stock you already own between warehouses (it becomes a Stock Entry, not a Purchase Order), and Manufacture feeds production. If "Create → Purchase Order" is missing, the Type is the first thing to check.

Where a Material Request sits in the buying cycle

The request is step one of a five-stage flow. You don't always need every stage — walk through it to see what's optional.

InteractiveBuying Cycle Walkthroughlink

Tap through Material Request → RFQ → Supplier Quotation → Purchase Order → Purchase Receipt to see what each stage does and when to skip it.

Material Request

The internal ask: “we need these items.” Type = Purchase for anything you buy. Can be raised by hand, from a Sales Order, from a Work Order, or auto-created when stock hits its reorder level.

You can skip the Request for Quotation and Supplier Quotation stages entirely when you already know the supplier and price — go straight from Material Request to Purchase Order. Use them when you want to collect and compare prices from several suppliers first.

Converting, auto-creating, and fixing

Code recipeConvert · Auto-create · Fix Recipeslink

Step recipes for converting a Material Request to a Purchase Order, auto-creating requests from reorder levels, and fixing the common stalls.

The supported path — and the partial-fulfilment gotcha.

steps
1. Open the submitted Material Request (Type = Purchase).
2. Create > Purchase Order.  (ERPNext asks for a default
   Supplier — set one, or set it per item on the Item master.)
3. Only ordering some now? Reduce the qty on the PO. ERPNext
   tracks the MR's "% Ordered"; raise another PO later for the rest.
4. Can't create a PO? Check the MR is SUBMITTED and Type =
   Purchase (Transfer/Manufacture types don't produce POs).

Raise a Purchase-type Material Request

New Material Request → Type = Purchase → add items and quantities → Submit. It has to be submitted before it can become a Purchase Order.

Create the Purchase Order

From the submitted request: Create → Purchase Order. ERPNext prompts for a default Supplier (set one here, or per item on the Item master). It carries the items and quantities across.

Order partially if you need to

Reduce the quantity on the Purchase Order to order only part now. ERPNext records the Material Request's ordered percentage, so you can raise another Purchase Order for the balance later without double-ordering.

Receive and bill from the PO

Raise a Purchase Receipt when goods arrive (stock and valuation post here) and a Purchase Invoice to bill — both pulled from the Purchase Order so the links stay intact.

Order now, or collect quotes first?

FAQ

+What is a Material Request in ERPNext?

A Material Request is ERPNext's internal purchase requisition — a record that says "we need these items". Its Type field decides what it becomes: a Purchase-type request flows to a Request for Quotation or a Purchase Order, while Material Transfer, Issue, and Manufacture types flow to Stock Entries or Work Orders instead.

+How do I create a Purchase Order from a Material Request?

Submit the Material Request with Type set to Purchase, then choose Create then Purchase Order from the submitted document and set the supplier when prompted. To order only part of it, reduce the quantity on the Purchase Order — ERPNext tracks the ordered percentage so you can raise another PO for the balance.

+Why is Create Purchase Order not working on my Material Request?

Almost always because the request isn't submitted yet, or its Type isn't Purchase. Material Transfer, Material Issue, and Manufacture types don't produce Purchase Orders — they become Stock Entries or Work Orders. Check both before anything else; a few version-specific conversion bugs exist too (for example #44635 on v16).

+Can one Material Request become multiple Purchase Orders?

Yes. Reduce the quantity on each Purchase Order to order in parts; ERPNext records the ordered percentage against the Material Request so the remaining quantity stays available for a later PO. This is how partial fulfilment across suppliers or over time is handled.

+What's the difference between Material Request and Stock Entry?

A Material Request is a request for items; a Stock Entry is an actual movement of stock. A Purchase-type Material Request leads to buying (Purchase Order). A Material Transfer or Issue type Material Request, once actioned, becomes a Stock Entry that physically moves or issues existing stock — no purchase involved.

+Does this apply to ERPNext v14, v15 and v16?

Yes — Material Request Types and the buying flow are the same across v14, v15 and v16. A few conversion bugs are version-specific (for example the v16 MR-to-PO error #44635), so confirm your patch level if a conversion misbehaves.

Closing

The Material Request is a simple document with one decisive field. Set the Type correctly, submit before you convert, and use partial ordering rather than fighting the system, and the buying cycle runs cleanly from requisition to receipt. Everything else in ERPNext buying hangs off getting this first step right.

Buying cycle a mess of ad-hoc POs and no requisition control?

We set up the Material Request → RFQ → Purchase Order flow with approvals, auto-reorder, and supplier defaults so procurement stops running on WhatsApp and spreadsheets.

Free · By email

Get practical ERPNext & automation guides

New implementation guides, cost breakdowns and open-source tips for Indian businesses — occasionally, straight to your inbox. No spam.

M

Written by

Manoj

Founder of Mith Tech, an open-source ERP & automation studio. Hands-on ERPNext/Frappe implementation across multi-branch, multi-warehouse Indian operations — GST/TDS/PT compliance, branch-level permissions, and custom Frappe apps that give management real-time visibility.

Keep reading

See what this looks like for your business

Book a free 30-minute audit. We'll map your workflows, find where time and money leak, and design an open-source stack you actually own — no per-user licence fees.

Book a consultation
0 0
Published on 28 July 2026

Manoj

Comments

No comments yet. Start a new discussion.

Ctrl+Enter to add comment