Customize BOM process for manufacturing using sub - BOM implementation for EMS application


We are currently facing issues in BOM and want to speed up the process.
We deal with PCB Assembly in Electronics Manufacturing Services.

So we are dealing with columns like this below. This file is created in Projects->CustomBOM: and eme_partcode represents item code, so details like manufacturing and part numbers are auto filled once the partcode is selected using client script.

Details we updated in Stock-> item (doctype) which is very important when purchasing.

This is what we created to make a custom BOM that is understandable for production team. This changes are not allowed in Manufacturing->BOM as it immediately says do not change doctype settings for this file.

This is our idea below:

We want to create a SUB-BOM where we can pre configure blocks of components based on below:
Digital input
Digital output
Power supply 3.3V
Analog input
Analog output
and so on…

So when creating custom BOM, we select the sub bom along with qty in Nos and it auto populates the erpnext table in list using custom script.

If it was possible to update Manufacturing-> BOM directly, using custom BOM via client script that would be very helpful.

Please let us know if this kind of method is possible as per flowchart shown.


Macjan (EME Automation, Goa - India)


This can be done without any customization.

For example, in below BOM of iPhone, circuit board is the sub-bom.

You can define the sub-bom for circuit board as below:

When you see the exploded view of iphone BOM, you can see the corresponding sub-assembly items required exploded automatically as below:

Hope this will help.


Divyesh Mangroliya


Problem with this Manufacturing->BOM is that we can’t modify it for our extra details. For example,
PCB Annotation, PCB Package is something I cannot add here.

If I want to do the same in custom BOM, How would I need to make changes?




You can do this as follows:

  1. Go to Customization Form of BOM. Click on Customize Child Table and Select BOM Item.

  1. Click on Add Row

  1. Create the Custom Field as follows. (Here I am assuming that you already added custom field on Item Master for the PCB Annotation) and in the Fetch From define item.pcb_annotation to fetch the value automatically from Item Master.

You can follow the same process for all other fields. Alternatively, as you mentioned you create CustomBOM in project, if it a custom DocType and you have link field in BOM, you can fetch from your custom doc also.


Divyesh Mangroliya