Racklipedia
Racklify
​
Materials

WMS Logic for Complex Bundles: The Nested BOM

Updated October 8, 2026
Published June 4, 2026
Dhey Avelino

Bundle Pack

Definition

Packaging used to group multiple products together as a single sellable or shippable unit.

Overview

Overview

The Nested Bill of Materials (BOM) models a multi-level product structure in which a top-level finished good (for example, a "Starter Kit") contains sub-assemblies that themselves contain components. In warehouse execution this requires coordinated BOM explosion, reservation/allocation, pick-task creation across multiple zones, and an assembly/kit transaction so that inventory is not double-counted or left in a "ghost inventory" state where availability misrepresents reality.


Key concepts to configure

  • BOM types: Distinguish between "phantom" (virtual grouping, no physical assembly required), "kit" (picked and packed as a group), and "assembly" (components are put together in a work area). For nested BOMs you will commonly use non-phantom BOMs for physical sub-assemblies and kit/assembly BOMs for the top-level pack.
  • Reservation model: Use component-level reservations rather than only reserving the top-level SKU. Reservations must update committed quantities in inventory immediately and atomically to avoid double allocation.
  • Zone-centric rules: Define allocation priorities per zone (e.g., pick-face first, bulk second, kitting/assembly zone third) and enforce location-level reservation logic.
  • Transaction atomicity & locks: Ensure allocation and decrement operations are wrapped in transactional workflows to avoid race conditions and ghost inventory when concurrent orders or replenishments occur.
  • Integration: ERP and WMS must share inventory state via synchronous reservation APIs or event-driven messages to maintain a single source of truth.


Configuration steps (practical)

  1. Model the nested BOM hierarchy: In the ERP/WMS BOM master, define the Starter Kit as level-1 with explicit links to sub-assemblies (level-2), and list each level-2 sub-assembly's component SKUs (level-3). Specify per-node attributes: "requires assembly", "pick as component", "phantom child" etc.
  2. Set BOM processing mode: For a Starter Kit that is assembled before shipping, set top-level as "assemble-to-order" or "kit-assembly". For components that are never physically assembled (virtual), mark them as "phantom" so the system simply reserves components directly.
  3. Define allocation priorities and zone rules: Configure location priority rules—e.g., pick-face (zone A) > bulk storage (zone B) > kitting/assembly (zone C). Map replenishment and pick strategies accordingly.
  4. Enable component-level reservation and BOM explosion: On sales order confirmation, enable automatic BOM explosion to derive a component reservation list. Reservation logic should create committed inventory records on the component locations selected by prioritization rules; the top-level SKU may be reserved as a "virtual" placeholder only if you maintain component reservations.
  5. Implement pick/transfer tasks: Configure the WMS task engine to generate separate pick tasks per zone for the components. Where components live in multiple zones, create transfer-to-kitting tasks to consolidate parts into the assembly zone before kit build.
  6. Assemble transaction and consumption: Set up a BOM consumption transaction that consumes committed component inventory and creates a finished Kit quantity in the kitting zone or finished goods location. This transaction must decrement component committed/on-hand quantities and increment top-level on-hand only after successful assembly.
  7. Shipping allocation & finalization: Reserve (or release) the assembled Kit for the sales order and generate pick/pack tasks for the finished-good location. Ensure the shipping pick consumes the kit on-hand and posts final outbound transactions.


Example scenario

Starter Kit SKU SK-100 contains Sub-Assembly SA-10 and Item C. SA-10 contains Item A and Item B. Locations: pick-face (Zone A) holds Item B, bulk (Zone B) holds Item A, and kitting area (Zone C) holds SA-10 inventory or is the assembly point.

  • Order placed for SK-100 → ERP/WMS triggers BOM explosion: SK-100 → SA-10 + Item C; SA-10 → Item A + Item B.
  • Reservation engine selects Item B from Zone A (pick-face) and Item A from Zone B (bulk) per priority rules; Item C reserved where it resides. Reservations are written as committed quantities at the location level immediately.
  • Pick tasks created: pick Item B from Zone A and Item A from Zone B; transfer tasks created to move picked quantities to Zone C kitting area.
  • Once components arrive in kitting, a kit-assembly transaction consumes the component committed quantities and produces SK-100 in kitting stock. The consumption operation clears component commitments and updates on-hand counts; the produced kit gets an available-on-hand increment and is reserved against the sales order.
  • Final shipping picks remove the kit from inventory and post outbound shipments.


Preventing ghost inventory

  • Immediate and atomic commitments: Reservation must set committed quantities at the exact location chosen and lock those inventory records. Delayed or batched reservations create windows where availability mismatches actuals.
  • Single-source writes: Ensure only one system (either WMS or ERP) performs the authoritative reservation write. If both systems write, implement a reconciliation or master/slave pattern to avoid overwrites.
  • Use build-confirm transactions: Only after the kitting/assembly confirmation should the system clear component commitments and increment finished-good inventory. Unconfirmed assemblies should not show finished-good on-hand.
  • Handle partial shortages sensibly: If some components are unavailable, the system should allow partial allocation rules or backorder the kit rather than creating phantom top-level reservations that cannot be fulfilled.
  • Replenishment and cycle count rules: Replenishment and cycle counts should respect committed quantities and not move stock that is already committed to avoid accidental double use.


Common pitfalls and mitigations

  • Double-reserving components: Occurs when top-level reservation and component reservation both decrement available stock without coordination. Mitigate by reserving only components and treating the top-level as virtual until assembly completion.
  • Race conditions during high concurrency: Use database-level locks or optimistic concurrency with conflict resolution for reservation writes.
  • Misconfigured phantom nodes: Marking an actually-assembled sub-assembly as phantom will bypass necessary assembly transactions and create inventory mismatches. Review BOM node attributes carefully.
  • Broken integration between ERP and WMS: Ensure reservation events and confirmations are synchronous or reliably queued; otherwise the WMS may pick items the ERP still shows as available, creating ghost allocations.


Best practices

  • Document BOM processes and define explicit assembly vs. kit vs. phantom behaviors.
  • Model location priority and replenishment rules to reflect physical workflows.
  • Implement atomic reservation/consumption transactions and make WMS the execution authority for physical inventory movements.
  • Use test scenarios with concurrent orders and simulated replenishment to validate against ghost inventory outcomes.
  • Monitor committed vs. available dashboards and reconcile via regular cycle counts and exception workflows.

With correct BOM modeling, component-level reservations, transactional assembly confirmation, and tight ERP/WMS integration, nested BOMs for Starter Kits can be executed across multiple zones without creating ghost inventory while preserving accurate availability and fulfillment performance.

Sources And Additional Reading (3)

More from this term
Looking for a 3PL?

Compare warehouses on Racklify and find the right logistics partner for your business.