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.