Need steps of how to make Semi-Finish goods in company1? and how to outsource that semi-finish goods to company-2 to receive Final-Finishgoods?

I have read all Manuals regarding manufacturing and subcontracting ,still it is confusing. (for which item BOM should be created?, For which item to select as "Is Subcontracted item " and “Is Production” on item master).

Use- Case is:-

Company-1 making ‘Semi-Finishgoods’ by using 4 raw ‘Semi-Finishgoods’ get outsource to company-2/supplier for applying some process. ,then Company-2 make “Final-Finishgoods” from thier side, and Company-1 take that ‘Final-Finishgoods’ in thier warehouse.



Stepswise help below.

Setup Items:

Item 1 - Raw-material
Item 2 - Semi-finished
Item 3 - Finished


Create BOM for Item 2, where Item 1 will be raw-material.
Create BOM for Item 3, where Item 2 will be raw-material.

Production Order:

Production Order will be made for Item 2 only.

Purchase Order:

Once you have semi-finished item, then follow sub-contracting cycle to get Item 2 processed item finished item.


Here goes. Let’s say a company makes a stand from MS Raw Material. This stand needs to be painted and that part is outsourced. Once the painted Stand is received back, let’s say you need to fix it to the Book Shelf and it becomes the finished goods.

First you need to create the following items:


and items for the appropriate MS Raw Material (For Simplicity I will assume that only one raw material - MS-Angles is used)

Ensure that you have clicked Supply Raw Material for Purchase, clicked for STAND-PAINTED.

Now you need to build the following BoMs:

STAND > MS-Angles X KG or Meters, or whatever is the Unit of Measure that your Shop Floor is comfortable with.



Now, you need to create a virtual warehouse for Picasso, Inc. - Your Painter.

Then you need to create a Purchase Order for Picasso, Inc. where you Check Supply Raw Material and call the STAND-PAINTED BoM into the P.O.

Now as you manufacture the STAND, you pass the Manufacturing entry - Stock>New>Stock Entry>Purpose-Manufacture and you use the BoM to consume X Units of MS-ANGLES to make the STAND. Make appropriate warehouse choices.

Now, you pass another Stock Entry Purpose-Sub Contract and call the PO for Picasso, Inc. and call the STAND-PAINTED>STAND BoM into this entry.

You select the Warehouse into which you made the STAND manufacturing entry as the Source Warehouse and the Picasso, Inc warehouse as your destination warehouse. You submit the Stock Entry and you ship out that many units of the STAND.

When the STANDs are ready and are shipped back to you by Picasso, Inc., you go to the PO>Make>Receive Material. Now you receive that many units of STAND-PAINTED. And as you submit this entry, that many units of STAND get reduced from your Picasso, Inc. warehouse. ERPNext uses the BoM you created to make this association between STAND-PAINTED and STAND. So, to know the number of STANDs that is with Picasso, Inc. at any time, all you have to do is run a stock balance report for the Picasso, Inc. warehouse.

Now, you complete up the BOOKSHELF (without the stand and you pass a manufacturing entry for the BOOKSHELF.

Depending on whether you do the assembly of the BOOKSTAND and the STAND-PAINTED at your factory or at the customer site, you can either pass a manufacturing entry that consumes up 1 No. of BOOKSHELF and 1 No. of STAND-PAINTED to make 1 No. of BOOKSHELF-FG or you can use the Product Bundle feature where BOOKSHELF-FG is made up of BOOKSHELF 1 No. and STAND-PAINTED 1 No. I would use the former approach when the the Bookshelf is assembled in the factory and shipped to the customer and the latter when the two components are shipped to the customer and assembled at the customer site.

Hope that helps.




@JayRam, @umair Thanks… I will try to implement it…

Iam stuck with subcontract

in my case, an bom can consist different process carried out at different subcontracts
iam posting my case

I have an item - sm-fc-01-01-prt — this is also an bom with the following process saved as item
sm-fc-01-ctl-wip - saved as item - goes to subcontract A for processing
sm-fc-01-gbb-wip - saved as item - goes to subcontract B for processing
sm-fc-01-haz-wip - saved as item - goes to subcontract C for processing

while raising a purchase order 1
i select BOM sm-fc-01-01-prt
i select the supplier A
i give it a rate - (rate gets saved in standard buying)
i save
while raising purchase order 2
i select BOM sm-fc-01-01-prt
i select the supplier B
i give it a rate
i save
wont there be a conflict in rate
since supplier A does cutting and charges Inr 6
wheras supplier B does painting and charges INR 100
when i raise a purchase order, all the materials show up
the po is restricted to bom qty whereas i should be able to send more or less qty
how am i to handle this scenario

please help

I have done exactly as you have mentioned above for my items
but there is a conflict in item price
suppose i have given 100 as item price for item 2, then for item 3 also it is auto giving the price as 100 in bom,inspite of me giving the prices of items in pricelist and calling that pricelist in Bom


Let’s say this is how your Product Hierarchy is from the base material (say sm-fc-01-ctl-wip) to the end part for this process sm-fc-01-01-prt:

sm-fc-01-ctl-wip (Sent to Sub Contractor A) > sm-fc-01-gbb-wip (Received from Sub Contractor A and Sent to Sub Contractor B) > sm-fc-01-haz-wip (Received from Sub Contractor B and Sent to Sub Contractor C) > sm-pc-01-01-prt (received from Sub Contractor C).

So now you have to set up a BoM that goes the same hierarchy.

Now you have a PO for sm-fc-01-gbb-wip on Sub Contractor A; sm-fc-01-haz-wip on Sub Contractor B; and sm-pc-01-01-prt on Sub Contractor C.

Since each is a different part number, your problem is solved hopefully.

Hi JayRam
Thanks a lot for responding to my post
i have maintained the hierarchy in the Bom
the problem is with the prices
i call the prices of items from pricelist “pricelist2017”
price of all items are input in the pricelist
what is happening is
the prices for th following items are
RM ALD50 - Rs 28
sm-fc-01-ctl-wip -Rs 6
SM-fc-01-cnc-wip - Rs 25
sm-fc-01-gbb-wip -Rs 5
sm-fc-01-haz-wip - Rs 10

Now i create the bom
bom 1
material is RM ALD50 - price Rs 28 qty 1

material is sm-fc-01-ctl-wip -price Rs 28 qty 1
Look at bom2 … the price should have been Rs6, but the erp has changed it to Rs28

material is SM-fc-01-cnc-wip - price Rs 28 qty 1
Look at bom3 … the price should have been Rs5, but the erp has changed it to Rs28

at the end , all the boms in this loop gets a price of Rs28 automatically wheras the prices in the pricelist2017 is different

at the end, if i have 4 process for an item, all the 4 process boms gets Rs28 and the value of the part is
28x4 = 112 which is the wrong value of the part

Suppose, i start my bom with this…sm-fc-01-ctl-wip -Rs 6
then all my remaining bom in this loop is getting a default price of Rs 6

Shall attach some images
in this below image, this is the first bom — here the material rate is correct - Rs 28

in this below image, this is the 2nd bom — here the material rate is again- Rs 28 instead of Rs6

this is happening for all the boms in this loop where hierarchy is maintained
Please help
i tried to imitate this situation in the erpnext demo site, but in the demo there is no provision for entering item prices

Could you please help on this
i have begun to feel that this a bug in the logic
Thanks again

I have been tinkering around with bom from morning
here is what i found
rates are not fetched properly when using an hierarchical Bom
hence, the cost of an item with process is not calculated properly
No problems with raising a Po
the rates that is fetched in the po is correct

Below is the BOM image of the item that has got all the above mentioned process
All prices are by default set to Rs28 (the first item price of the first Bom in this hierarchy)

Please look in to this

Well, let’s say the cost of raw material is 28, and you send it out for sub contracting at 6, then the valuation of the finished product shoukd be 34 plus any transportation charges per unit that you may want to load on top of that.

The way ERPNext is structured right now, you cannot pull the Rs. 6 from a price list. If you do, you have discounted the cost of raw material from it. So everytime you subcontract, the valuation of the product you receive back will get added by the amount you are paying your subcontractor.

I would suggest that you use Valuation rate, because you really need to know what’s the cost of the products you are producing. For instance if the cost of raw material increases or decreases, the valuation of your items should all get appropriately adjusted. You should have a price list for selling items and buying of raw material items. For now, try to manage that process of plugging in the price for the PO on subcontractors manually.

Thanks for the Reply JayRam
As of now i shall move to valuation rate
But i think the above issue needs to be looked in to
Thanks again

In the Purchase Order of sub-contracting, if transportation charges are added in the taxes and charges table, and if it is categorized as Valuation, then transportation charges should be added to the item’s valuation as well. Right?

Yes. That’s right. It should get added to the value of the stock. Though the organisation should be a little careful about appropriating the costs correctly. But yes, from a system perspective, the costs should be loaded onto the valuation of the stock.

But while doing so, system should be careful, not to book the transportation cost as expense. It gets booked when the product gets sold but the transportation cost is just one component in the valuation of the Finished Goods.

Hope that helps.



Yes that a valid point
shall look in to it
thanks a lot again for your inputs