Bill of Materials (BoM)

A Bill of Materials (BoM) is the structured list of components, sub-assemblies, raw materials, and quantities required to produce one unit of a finished product. It's the recipe the production system uses to translate a finished SKU into the inputs needed to build it.

What a BoM contains

A typical BoM entry includes, for each component:

  • Component SKU or part number
  • Quantity required per finished unit
  • Unit of measure
  • Component cost (rolls up to total unit cost)
  • Supplier reference
  • Lead time for that component

The BoM is what allows a production planner to answer "to make 1,000 units of finished SKU X, what do I need to have on hand?" — instantly, with confidence, and without rebuilding the calculation each time.

Single-level vs. multi-level BoMs

  • Single-level BoM: lists only direct components of the finished product. Sufficient for simple assembled products.
  • Multi-level BoM: shows the full hierarchy — finished product → sub-assemblies → components → raw materials. Necessary for products built from intermediate sub-assemblies (e.g., a kit that contains a pre-assembled module).

Most ecommerce brands work with single-level BoMs unless they're producing electronics, furniture, or other multi-stage assembled goods.

Why BoMs matter for ecommerce

Without a BoM, three problems compound:

  • Production planning is guesswork: the brand can't reliably translate "we want to make 1,000 units" into "here's exactly what to order from each supplier."
  • Costing is inaccurate: per-unit cost is built from component costs; without a BoM, COGS is approximate and margin reporting drifts from reality.
  • CTP is impossible: Capable to Promise calculations depend on a BoM. Without one, the system can't tell whether a new order can be produced on time.

BoMs in Shopify-adjacent operations

Shopify itself doesn't manage BoMs — it tracks finished-goods inventory only. Brands needing BoM functionality typically run a separate manufacturing or inventory system (Katana, MRPeasy, Cin7 Omni, NetSuite) alongside Shopify. The BoM lives in that system, and finished-goods stock counts sync back to Shopify after production runs complete.

Common BoM mistakes

  • Stale BoMs after product changes: a formulation tweak, a packaging change, or a supplier swap that doesn't get reflected in the BoM produces wrong production orders and wrong costing.
  • Missing scrap and yield factors: if 5% of components are unusable due to defects, the BoM should account for it. BoMs that assume 100% yield consistently under-order materials.
  • BoMs without lead time: components have their own lead times. A BoM that lists components without their lead times can't drive accurate production scheduling.
  • Manual BoM in spreadsheets at scale: works for under ~20 SKUs; becomes a chronic source of error and version-control issues beyond that.