Creating a BOM
Every BOM is created the same way: from the Finished goods page, in one dialog with two steps. This page covers that flow, plus the bulk options for catalogs.
On this page
Section titled “On this page”- Creating a BOM step by step
- Creating one bill per variant in a single pass
- Why a Shopify product is required
- What happens when a variant already has a BOM
- Adding components (and why they’re optional)
- What happens after you click Create
- Bulk options for catalogs
Creating a BOM step by step
Section titled “Creating a BOM step by step”-
Open the Finished goods page. In the Assemblified navigation, click Bill of Materials — the page it opens is titled Finished goods and lists every BOM in your shop.
-
Click Create. Shopify’s own product picker opens first. Choose the product this finished good is sold as. The picker is Shopify’s, so it searches your live catalog.
-
Step 1 — Product and details. The dialog opens on the product you picked, with Change product to go back to the picker.
- A one-variant product goes straight to a Name field. Name is required — it’s shown everywhere this finished good appears, so make it unambiguous (“Vanilla candle 8oz”).
- A multi-variant product shows a tick list of its variants under the line “One bill of materials is created for each selected variant.” Tick the ones you want and each gets its own Name field, pre-filled from the variant.
- Description and Notes sit below the list and are optional. They are shared: every bill created in this pass gets the same description and notes.
Assemblified checks the ticked variants while you’re on this step. Next stays disabled until the check clears.
-
Step 2 — Components. Two ways to add:
- Add Shopify variants — opens Shopify’s picker again, for raw materialsRaw materialThe atomic component of a bill of materials or an assembly bill. Two flavours: a Shopify-linked variant, whose inventory Shopify tracks, or a virtual material, which Assemblified tracks on its own and Shopify never sees. Both sit in the same component picker and are consumed the same way. Read more → that are real Shopify variants.
- Add from list — a picker with a Source switch between Virtual material and Sub-assembly (the app nav calls the latter an Assembly Bill), and a search box. You can tick several before pressing Add.
Each added row is editable in place: Quantity (how many you consume to build one finished good), Waste (a percentage margin for material loss, raw materials only), and Notes. Remove takes a row back off. Whatever you put here is used for every bill the pass creates.
-
Click Create. The button reads Create for one variant and Create 4 when four are ticked, so it always says how many rows you’re about to write. Everything — the product link, the details and every component — is written in one go.
Creating one bill per variant in a single pass
Section titled “Creating one bill per variant in a single pass”When a product has several variants that all take the same recipe, you don’t need one trip through the dialog per variant. Tick them all on step 1 and Assemblified creates one bill of materials per ticked variant, each with its own name and the shared description, notes and component list.
A few things to know:
- Up to 25 variants per pass. Tick more and the dialog says so rather than failing at the end.
- A variant that already has a BOM fails its own row — it is not quietly skipped. You asked for a bill on that variant, so the result names it and says why, and the rest still land.
- A partial result keeps the dialog open. The banner tells you how many were created and names every one that wasn’t, so you can fix those and run again.
- If you need different recipes per variant, create them separately, or use Create BOMs in bulk, where every row has its own component quantities.
Why a Shopify product is required
Section titled “Why a Shopify product is required”A BOM is always bound to one Shopify product variant: the thing your customer buys. That binding is what lets Assemblified recognise an incoming order as BOM-backed and deduct the right components.
You can’t create a BOM without picking one — that’s why the product picker opens before the dialog rather than being a field inside it.
When a variant already has a BOM
Section titled “When a variant already has a BOM”A Shopify variant can hold exactly one BOM. There is no override.
While you’re on the Product and details step, Assemblified checks every ticked variant. A variant that’s already taken gets a red line on its own row naming the BOM that owns it, with an Open it link straight to that BOM — on a screen with several variants, “this one is taken” is only useful if it says which one. Next stays disabled until you untick it or pick a different variant.
If the check itself can’t complete (a dropped connection, say), the dialog lets you carry on: the same rule is enforced when you press the create button, and you get the same message with the same link rather than a duplicate BOM.
Components are optional
Section titled “Components are optional”You can create a finished good with no components at all — “No components yet. A finished good can be created without them and edited later.” — and fill the recipe in afterwards from the detail page’s Materials tab, where you also get per-component location overrides.
Set initial pre-assembled stockPre-Assembled InventoryStock of finished goods and assembly bills already built and on the shelf, counted per location. A work order draws assembly bills from the shelf first, building fresh only if it runs short; an order consumes a finished good's shelf before its components. Read more → from the detail page too, if you already have built units on the shelf. Orders draw from that shelf first.
Bulk options for catalogs
Section titled “Bulk options for catalogs”For catalogs of many similar BOMs, the More actions menu on the Finished goods page has:
- Create in bulk — opens Create BOMs in bulk: one grid with your finished goods down the side and their components across the top, so a whole size or colour run is built in one pass. Columns can be Shopify product lines, collections, single variants, virtual materials or assembly bills; you can save the grid as a session and come back to it, and save reusable rules that fill it in from what each row’s title or SKU says.
- Import from bundles.app — scans your catalog for bundles.app bundles and creates a matching BOM for each one, with a preview of what it found (bundle, SKU, component count, whether it already has a BOM) before anything is written. You choose whether existing BOMs are skipped or updated. Under Advanced settings you pick one Inventory mode for the new BOMs — Off, Dynamic adjustment, Maintain inventory level, or Only sell pre-assembled quantities (Enhanced plan) — plus the Keep-assembled-on-return and Auto-generate-material-list switches. Only one inventory mode can be chosen, because those three settings never combine on a BOM; see the Settings reference. Existing BOMs keep their settings.
- Import from CSV/XLSX — one spreadsheet with a row per component becomes a whole set of bills. Upload the file, map its columns, review the bills it describes, exclude the blocked ones, and create. Full walkthrough: Import BOMs from a spreadsheet.
What happens after you click Create
Section titled “What happens after you click Create”A new BOM is inactive. While inactive, Shopify orders that include the finished-good variant skip the BOM entirely — no inventory side-effects, no execution log row.
To switch it on, either open the BOM and flip the Status switch on the Shopify Integration card at the top of its Overview tab (then Save), or, back on the Finished goods list, tick the row and choose BOM settings → Activate in the bar that appears along the bottom. Activating several at once works the same way — tick them all, then Activate.
Activating doesn’t fire anything immediately. The next order that includes the variant runs the BOM through its execution model.
You can edit a BOM’s components or settings at any time, even after activation. Edits apply to the next order — orders already processed are unaffected.
Common gotchas
Section titled “Common gotchas”- A variant can only be in one BOM, and Assemblified won’t let you override it. If you picked the wrong variant, either open the BOM that already owns it (the message links to it) or pick a different variant.
- Description and notes are shared across a multi-variant pass. Only the name is per variant. Open the individual bills afterwards if they need different text.
- Inactive BOM doesn’t fire and doesn’t log. If you’re testing and the execution log is empty, check that the BOM is active.
- The Location override column is optional. Leave it on Default location (or Order location once multi-location sensitive adjustments are on) and the component is consumed from your default location, or from the location the order is fulfilled from. Set it only when a component should always come from one place, such as “Warehouse B”. The ⓘ in the column header explains which fallback is in force.
- Waste percentage compounds. If a sub-assembly has a 5% waste on its raws, and the parent BOM has a 5% waste on the same raw via a different path, both compound — you’ll consume slightly more than naively expected. See Composition for the precise math.
Where to next
Section titled “Where to next”- Create BOMs in bulk — build a whole product line of BOMs in one grid.
- Import BOMs from a spreadsheet — one CSV or XLSX file, a row per component.
- Composition — understand exactly what each component type does at execution time.
- Settings reference — every toggle, what it does, defaults.
- Execution model — what happens when an order arrives.