We have 276,481 different types of fixtures we sell at the lighting company I work for. It is IMPOSSIBLE for us to create a BOM for every single variant. What is the easiest way for us to create a BOM for every item?
Can we copy a BOM on item creation and edit what needs to be changed?
Do you truely need BOM for all of those items? Asked differently, are these items changing state in some way? Lighting parts â lighting fixtures? Otherwise you would not need a BOM for each item. When you do have a BOM, you need two or more items. If your quarter-million Items includes all the parts that make up your products, thatâs a relief. If youâre talking about just the goods-for-sale, youâve going to have many more items than that.
I would look into Item Variants to cut down on your overall item count, which will also reduce the number of BOMs.
@MichaelPinkowski has some experience in the lighting industry but I know heâs traveling over the next few days.
For something like this, my first instinct would be performing some kind of mass-update through MySQL (MariaDB).
Youâd have to have a solid understanding of how ERPNext models parts and BOMs in the database. But it could be done.
From a certain point of view, ERPNext (or any other ERP for that matter) is just a giant user interface to a database, with code that does CRUD on the data. With some SQL wizardry, I donât see why you couldnât populate 276,000 rows of data (in many different tables).
Not saying itâs easy. But this is how Iâd approach the problem, for these kinds of bulk inserts. Either purely with MySQL, or perhaps with Python.
Ideally, if you even want to do this. You want to write a script that uses the Frappe ORM to create the BOMs. Even if that takes longer than running queries, this is necessary so that the system can run all the validations and checks it needs to run for each BOM.
At the end of the day ERPNext runs on Frappe, use the ORM.
Please do not edit anything. (As in do not mess around with SQL imports).
Easiest way is to use Data import located in Setup >> Data Import and click New to create one.
Then choose DocumentType âBOMâ.
Then locate your file. For the template you should see a button âDownload Templateâ next to the help button on the top.
One tip is to create the BOM and a couple of variants and then when downloading the template select âDownload with dataâ and you can see how the data is structured.
Hope it helps.
EDIT:: Clarify no touching the DB!
EDIT: Donât forget to backup before running mass imports!
The guys are right - I have (VERY foolishly) tried to do sql-dabbling for imports. It is a disaster, and WILL damage your system. Use the import system as described above.
Fortunately I had backups to restore to/from.
At best you could programmatically create CSV files to use as your import templates, but the sql-dabbling will probably be horrendous.
I would recommend making a backup after each import run. The max is 5000 items at a time, but I would recommend using 3000-4000 for safety, so youâre in for about 100 runs.
Make sure all the product categories exist before running the imports too, otherwise you have a lot of hassles
There is Data Import Facility. I dont know how structured data do you have. But you can first workout with item codes and BOM in Excel and import it with Import Format from Frappe Import Tool.
The only issue I see is âidentifyingâ the particular âvariantâ that you might want to build.
When creating BOM, each new version is merely a 3 digit number appended to the BOM name.
For example. If you make a light fixture called âDoor Lanternâ and it has a Item Code of DL000123, then the very first iteration of the BOM would be named:
BOM-DL000123-001
The second variant would be named:
BOM-DL000123-002
And so on, etc. So the real problem is being able to later identify which variant of the DL000123 you need to create a Production Order for in order to have it made in your manufacturing facility. There isnât much to work with when it comes to locating a specific BOM version unless you have some other way to associate the variant to the BOM version number.
Not sure how you might get this resolved. Hopefully I laid out the issue well enough here that someone else might be able to take it to the next logical step.
Is there a way to bypass creation of BOM and assign material at the time of manufacturing?
In this way a user can directly assign the required material to the production unitadn not have to generate so many BOMS
Well, you donât need a BOM to make a manufacturing entry. You could consider creating a virtual warehouse on ERPNext, drop all input items into this virtual warehouse and when the item has been manufactured on the shopfloor, you can make a manufacturing entry by consuming the input items and making the transformed item.
Itâs fairly simple and easy to do this. The complexity is if you have simultaneous building of such items on the shopfloor. Tracking consumption against each transformed item is the problem and you need to have good physical controls on the shopfloor for that. The ERPNext side is relatively easy if you manage to implement the tracking mechanism,
Donât even do a Work Order. Start Manufacturing based on Sales Order items. The standard manufacturing flow of ERPNext is constraining in certain situations and many of my implementations donât use the standard flow at all.
Do you just use stock entry type âMaterial Consumption for Manufactureâ to consume the raw materials and use entry type âMaterial Receiptâ to bring in the produced item. If that is the case how do we ensure the cost of produced items equal the cost of raw materials. Since the cost of the raw materials and the cost of finished good will go to âstock adjustment accountâ. If the two are not same the profit and lost will give fictitious loss or profit from the production process.I desire insight to how this is being overcome. Thanks
Basically for simple busineses who do not want to go the BOM route.
I belive the image is clear enough??
You input the raw materials in the Consumed by section and the manufactured products in the Produced from Manufacturing section.
You can produce multiple items as well as apporton the input costs across the outputs.
A bit simplistic but works for smaller manufacturing companies
Good.Is it possible to make the apportionment of the total materials cost as weighted average of the individual item produced cost for the final absorbed cost automatically ? If this is done,this simplified solution becomes mighty.
By default it apportions the input value equally amongst the items produced, if you do not want equal apportion then you can input the aportion % for each item in the Apportion field.
Yes, a stock entry is created that consumes the input items and adds to the manufactured items.
Its an app, will share the github page when I get to the office