Advanced Bill of Materials

11 Apr 2023

Advanced Bills of Materials (BOMs) are powerful tools used to manage multiple BOM variations for assembly items in NetSuite.

There are three key records associated with BOMs:

  • Assembly
  • Bill of Materials
  • Bill of Materials Revision

Assembly

An assembly item is the product that uses the bill of materials.

You can attach multiple bills of materials to an assembly under the Manufacturing tab. When creating a work order for an assembly, you can select which BOM to use.

You can designate a default BOM by checking the Master Default checkbox. Alternatively, you can set different BOMs as defaults for specific locations using the Default For Location field. You cannot select both the Master Default checkbox and specify a Default For Location simultaneously.

Bill of Materials

A Bill of Materials record defines a particular method for constructing an assembly. It does not contain component details directly but instead stores high-level information.

You can restrict a BOM to specific locations or assemblies. Actual component details are stored within Bill of Materials Revision records.

Bill of Materials Revision

This is the record where the actual component details of the BOM are stored.

Each BOM can have multiple revisions, but only one revision can be active at any given time. A revision becomes active when its start date is in the past and its end date is either in the future or left blank. If there is only one revision, simply set the start date in the past and leave the end date empty.

NetSuite will prevent the creation of overlapping BOM revisions. If you need multiple active revisions simultaneously, you likely need separate BOMs.

In the component list of a BOM revision, most fields are straightforward. However, the Source field specifies how components are acquired:

  • Stock
  • Purchase Order
  • Work Order

Some of these options may not be available depending on your NetSuite configuration.

Selecting Work Order creates an additional work order for the component upon releasing the main work order. Selecting Purchase Order will automatically generate a purchase order upon releasing the work order.

Example

Here’s an example to illustrate this process:

John’s Hardware Store produces a product called “John’s Hammer.” This hammer can be manufactured in two different ways: one method uses Iron for the head, and the other uses Steel.

Manufacturing happens at two locations: Iron heads are made in California, and Steel heads are made in New York. Starting next month, magnesium will be added to the steel heads produced in New York.

Here’s how the records would look:

  • Assembly: John’s Hammer
    • Bill of Materials: Iron Hammer BOM
      • Bill of Materials Revision: Iron Hammer BOM - Iron
    • Bill of Materials: Steel Hammer BOM
      • Bill of Materials Revision: Steel Hammer BOM - Steel
      • Bill of Materials Revision: Steel Hammer BOM - Steel + Magnesium

Under the Manufacturing tab of the “John’s Hammer” assembly, you’d have two lines—one linking the Steel Hammer BOM for New York, and another linking the Iron Hammer BOM for California:

Bill of Materials Current Revision Master Default Default For Location
Steel Hammer BOM Steel Hammer BOM - Steel No New York
Iron Hammer BOM Steel Hammer BOM - Iron No California

Note: The Current Revision field is read-only and automatically displays the active revision.

Here’s how the BOM revisions for the Steel Hammer BOM would look:

Revision Start Date End Date
Iron Hammer BOM - Iron 1/1/2023  
Steel Hammer BOM - Steel 5/1/2023 1/1/2024
Steel Hammer BOM - Steel + Magnesium 1/2/2024  

Notes for Uploading BOMs via CSV Import

You can link BOMs to assemblies using the Multiple Files to Upload feature in the CSV import tool. However, linking manually may be easier, depending on the number of BOMs involved.

When uploading BOMs through CSV import, follow this specific order:

  1. Bill of Materials
  2. Assembly (if linking BOMs to an assembly)
  3. Bill of Materials Revision

For populating multi-select fields, separate the values using a pipe (|) character. You can change this separator in Advanced Options.

Feel free to leave questions or comments below, or contact me directly through this form.