Design a site like this with
Get started

Creating a Bill of Materials (BOM)

This post is in response to this question.

“A bill of materials or product structure is a list of the raw materials, sub-assemblies, intermediate assemblies, sub-components, parts, and the quantities of each needed to manufacture an end product. A BOM may be used for communication between manufacturing partners or confined to a single manufacturing plant.”

KwaMoja allows for the creation of single or multi level BOMs that fit this definition. This example will be based on this recipe Victoria sponge cake. A few minor ingredients have been omitted for ease, this is not a cooking lesson!!. The example BOM is already set up in the KwaMoja demo and you can follow it there.

First off the parts need to be set up as inventory items using Stocks.php from the “Add a New Item” option on the Maintenance section of the Inventory module. The parts to create are:

VICSPON - Victoria Sponge Cake
|_ SPOKAC - Sponge Cake Base
_|_ CASSUG - Caster Sugar
_|_ BUTTER - Butter
_|_ EGGS - Eggs
_|_ SELFLO - Self-raising flour
|_ VICFIL - Victoria sponge cake filling
_|_ STRJAM - Strawberry jam
_|_ BUTTER - Butter
_|_ ICISUG - Icing sugar

As can be seen, the final cake is made up of two parts, the base, and the filling. These two parts are then made up of 4 and 3 bought in parts respectively. When setting up the items the most important field to get right is the “Assembly, Kit, Manufactured or Service/Labour:” field. For any part that is manufactured it should be set to “Manufactured”, bur for the raw materials it should be set to “Purchased”. Only parts set as Manufactured can have a BOM associated with them. undefined

To construct or amend a BOM choose the “Bills of Material” option from the Maintenance section of the Manufacturing module.

Firstly we must select the top level parent item.

Then choose the component parts. The entry screen for each component will look like this: undefined
The “Sequence in BOM” field is an integer indicating the order in which the parts are used. The sequence numbers can be automatically updated if you later insert components.
The “Location” field is the physical warehouse/factory where the manufacturing takes place. It is possible to have different BOMs for the same product made in different locations.
The “Work Centre Added” field denotes the work centre where this component is added to the product. For the purposes of this example the same work centre is used for each component, but it doesn’t have to be.
The quantity field is the amount of this component needed, in the units in which the component is stored.
The Effective From/To dates are the dates between which this component will be part of the BOM.
If the component is set to “Auto Issue” then when a work order for this parent is received, the parts marked “Auto Issue” will be automatically deducted from stock.
Finally you can add any comments for each line of the BOM.

The completed BOM looks like this:


Published by KwaMoja

My name is Tim Schofield, I have worked as an accountant in the UK since the early 1980's. I have been interested in writing software since acquiring my first Sinclair Spectrum. A large amount of my professional career has been spent implementing ERP companies at a number of sites.

3 thoughts on “Creating a Bill of Materials (BOM)

  1. Hi Tim,
    Thanks for your posting in reply to my inquiry. I have many comments and much feedback. First, a little about me, my background, and what I am looking for. I am a “retired” electronics engineer with a BSEE degree in the field of radio frequency design. Most of my career was spent in what I call “sustaining engineering” in the avionics field. I have worked on the design side of things and much manufacturing support. I use GnuCash (a free software program) for financial record keeping and a program called Parts & Vendors 6.0 (P&V6) for keeping track of inventory, their sources, costs, and doing parts lists (PLs)/BOM(s). I was looking for a free software program to take the place of P&V6 as the outfit that produced that program has gone out of business.

    I don’t think you have enough indentations in your “parts to create” list. I think it should be:
    VICSPON – Victoria Sponge Cake
    |_ SPOKAC – Sponge Cake Base
    _|_ CASSUG – Caster Sugar
    _|_ BUTTER – Butter
    _|_ EGGS – Eggs
    _|_ SELFLO – Self-raising flour
    |_ VICFIL – Victoria Sponge Cake Filling
    _|_ STRJAM – Strawberry jam
    _|_ BUTTER – Butter
    _|_ ICISUG – Icing sugar

    There are three drawings/documents that specify an electrical/electronic assembly, they are: 1) A schematic diagram, 2) A parts list (PL)/BOM, and 3) An assembly drawing (ASSY DWG). If the assembly is only mechanical, or soft ingredients–no schematic diagram, there are only two documents: A PL and an ASSY DWG. The thread that holds the three drawings of an electronic assembly together is the reference designator of the electronic parts. I don’t see any column in your BOM for reference designators or item numbers.

    I am familiar with ANSI/ISO/IEC/EN standards. In the United States the American National Standards Institute (ANSI) is an overall standards organization made up of standards writing bodies such as the Institute of Electrical and Electronics Engineers (IEEE), the American Society of Mechanical Engineers (ASME), the American Society for Testing and Materials (ASTM), the American Welding Society (AWS), and many more.

    In ANSI approved ASME standard Y14.34 “Associated Lists” defines
    3.20 Parts List (PL)
    parts list (PL): a tabulation of all parts and bulk materials
    used in the item(s), except those materials that support
    a process and are not retained, such as cleaning solvents
    and masking materials.
    NOTE: Other terms previously used to describe a parts list are
    list of materials, bill of materials, stock list, and item list.

    3.15 Find Number or Item Number
    find number or item number: a reference number assigned
    to designate an item on the field of the drawing, in
    lieu of using the item’s part or identifying number. It is
    entered as a cross-reference to the line of the parts list
    where the item’s actual part or identifying number and
    description are given.
    NOTE: Reference designations for electrical and electronic parts
    and equipment, in accordance with ASME Y14.44, may be used
    as find numbers or item numbers.

    There are, what I call, two types of PLs: 1) An engineering or design parts list where the electronic parts are usually listed individually in alpha numeric order of the reference designators and 2) A manufacturing or procurement list where like items from the design PL are combined for a total quantity required with the reference designators in alpha numeric order retained. This list is usually ordered in accordance with the assigned company part number. Your program should have the ability to readily go between these two types of lists.

    I look forward to a continuation of this discussion.
    –Regards, Larry
    P.S. I had a very difficult time getting this reply into your system.


    1. Hi Larry,
      Bizarrely the BOM was correctly indented in edit mode, but when WordPress published it the indentations were flattened out. I have used the way you have shown it to give it a better look – thanks.
      Secondly you refer to “Your project”. Just to be clear this is a project that many people have contributed to, though I am one of the two main contributors in it’s various incarnations. I bring this up because when I talk about contributors in a Free software project I am not referring to just coders (in fact programmers are generally the easiest to find). What are often the best contributors are people who are very knowledgeable in an area who can draw up a specification for that area, allowing it to be coded up. I am aware that the manufacturing side and BOM’s in particular is an area that we could always improve on. Though I think we are as good and often better than most Free software ERPs.
      This is a long winded way of saying how about starting a wiki page to take the BOMs to the next stage? You can do this here:
      That way I can add edits where I see fit, and can take the wiki page and convert it into code. All you need is a GitHub account which you may already have. The formatting is fairly obvious, but I can help with any queries and there is a lot of info online about using the GitHub wiki.
      ps I know there are problems with the forum, and with commenting on here. I am going to sort it all, but things have been a bit mad here.


      1. Hello Tim,
        I went to your GitHub linked sight and I do have a GitHub username and password. However, I seem to be technically challenged as to how to make comments and give feedback, which I am willing to do. Do I start a branch? If so, how do I go about doing that for KwaMoja? If you want you can e-mail me directly at lawrence underscore joy at yahoo dot com.
        –Regards, Larry


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: