Skip to content

Migrate your catalog to BOMs

This guide walks through converting an existing Shopify catalog to BOMBill of MaterialsA bill of materials tells Assemblified how to build one unit of a finished good. When a customer orders the finished-good variant, Assemblified deducts the right component quantities from inventory automatically. Read more → -tracked inventory — without disrupting in-flight orders or losing inventory accuracy. The pattern works whether you have 5 SKUs or 5,000: the difference is only how much of it you do with bulk tooling.

The safety property the whole plan leans on: an inactive BOM does nothing. You can build and review recipes for your entire catalog while orders keep flowing exactly as before, and flip products live in waves.

  1. Audit your catalog.

    Split your SKUs into three buckets:

    • Assembled goods — anything you build from parts. These become BOMs.
    • Components — the parts. If they’re Shopify variants you also sell or purchase, they’ll be Shopify-linked raw materialsRaw materialThe atomic component of a BOM or sub-assembly. Two flavors: a Shopify-linked variant (inventory tracked in Shopify) or a virtual material (DO-side inventory only). Both kinds appear in the same component picker and are consumed identically when a BOM fires — except virtual materials never trigger a Shopify call. Read more → ; if they’re not in Shopify (packaging, consumables, bulk stock), they become virtual materialsVirtual MaterialA material tracked entirely inside Assemblified — not a Shopify variant. Useful for shop-floor consumables (glue, packaging, labour units) where you need quantity tracking but don't want a Shopify product on your storefront. Read more → .
    • Everything else — simple resale products. They don’t need BOMs; leave them alone.

    While you’re at it, note shared components (the same jar in 40 candle SKUs) — getting their stock right matters more than anything else.

  2. Prepare the components.

    Create the virtual materials first, with correct units of measurement and opening stock (Virtual materials). Shopify-linked components don’t need preparation — they register automatically the first time a BOM references them.

  3. Pilot with a small subset.

    Pick 5–10 representative SKUs — ideally including one with a shared component and one with a sub-assemblySub-AssemblyA reusable assembly block that composes into bigger BOMs. Define it once, include it in any BOM. At execution time, Assemblified expands the sub-assembly into its own components recursively. Read more → -shaped recipe. Create their BOMs manually (Creating a BOM) and leave them inactive.

  4. Validate the pilot.

    Activate the pilot BOMs, then place a test order per BOM and read its execution log: right components, right quantities, right locations (Execution model). Cancel the test orders and confirm the reversal. If a recipe is wrong, fix it now — while it affects ten SKUs, not the catalog.

  5. Build the rest in bulk.

    For catalogs of similar recipes, skip the per-BOM clicking:

    • Bulk CSV upload — one file, a dry-run preview, then insert. Created BOMs arrive inactive.
    • BOM Containers → Bulk operations — pick a template BOM and create N siblings whose recipe matches but whose finished-good variant differs (the 50-candle-scents case).
    • Build BOMs via the API — for scripted migrations from an ERP or spreadsheet system of record.
  6. Roll out in waves and watch.

    Activate one product family at a time. After each wave, skim the execution logs for the first few real orders and spot-check a shared component’s stock. If numbers drift, Reconcile inventory is the repair tool.

  • Set up multi-location inventory — if your components live in more than one warehouse, configure this before the big rollout wave.
  • Dynamic adjustment — once recipes are trustworthy, let buildable capacity drive the storefront’s sellable quantities.