ERPNext Version: ERPNext 16
Module: Subcontracting / Buying
Background:
We are a plastic pipe manufacturer. We send HDPE pipe scrap to a vendor for grinding (job work). The vendor grinds the scrap and returns HDPE grinding material to us. We want to track this job work in ERPNext 16.
What We Have Done:
Created Item HDPE Pipe Scrap (Stock Item) — raw material sent to vendor
Created Item HDPE Grinding Scrap (Stock Item, Is Sub-Contracted = Yes, Default BOM assigned) — finished output received back
Created Subcontracting BOM — 1 kg HDPE Grinding Scrap = 1 kg HDPE Pipe Scrap
Done Stock Entry (Send to Subcontractor) — material transferred to supplier warehouse successfully
Created Grinding Charges as a Non-Stock Service Item for PO
Problems Faced:
Problem 1 — Regular Purchase Order (Is Subcontracted = Yes):
When trying to select HDPE Grinding Scrap in the PO items table, ERPNext throws error:
“Item must be a Non-Stock Item”
Problem 2 — Subcontracting Order:
Subcontracting Order requires a linked Purchase Order mandatorily. But the PO does not allow stock items. This creates a circular dependency — cannot create PO, cannot create Subcontracting Order.
Problem 3 — Stock Entry for Return:
When trying to receive material back via Stock Entry, the purpose filter does not show “Subcontracting Return” as an option.
Questions:
What is the correct end-to-end flow for vendor job work (send raw material → vendor processes → receive finished material back) in ERPNext 16?
Is the Subcontracting Order the right document, and if yes, how do we handle the mandatory PO requirement?
Should the PO be created with the Grinding Charges (Non-Stock) service item, and then Subcontracting Order linked to it?
How do we correctly receive processed material back from vendor and close the subcontracting cycle?
Expected Flow We Are Trying to Achieve:
HDPE Pipe Scrap (our stock)
↓
Send to Vendor Warehouse (Stock Entry - Send to Subcontractor) ![]()
↓
Vendor does grinding job work
↓
Receive HDPE Grinding Scrap back into our warehouse
↓
Pay vendor for grinding charges
Any guidance on the correct ERPNext 16 subcontracting workflow would be very helpful.