Bulk operations
The container detail page has a bulk-action toolbar. It operates on the BOMs you’ve selected with the row checkboxes. There are roughly a dozen verbs available — this page is the reference.
On this page
Section titled “On this page”- The verb inventory
- Subscription gates
- How bulk actions are dispatched (and what that means for failure modes)
- Bulk operations NOT yet available
Verb inventory
Section titled “Verb inventory”| Verb | What it does | Subscription |
|---|---|---|
| Bulk activate | Set status=‘active’ on each selected member. | — |
| Bulk deactivate | Set status=‘inactive’. | — |
| Bulk remove from container | Set bomAutoId=NULL — un-groups, doesn’t delete. | — |
| Bulk delete | Hard-delete each selected member (cascade removes references). | — |
| Bulk enable dynamic adjustment | Set dynamicAdjustmentEnabled=1. | — |
| Bulk disable dynamic adjustment | Set dynamicAdjustmentEnabled=0. | — |
| Bulk enable maintain inventory level | Set maintainSameInventoryLevel=1. | — |
| Bulk disable maintain inventory level | Set maintainSameInventoryLevel=0. | — |
| Bulk enable auto-generate material list | Set autoGenerateMaterialList=1. | Enhanced |
| Bulk disable auto-generate material list | Set autoGenerateMaterialList=0. | — |
| Bulk enable keep assembled on return | Set onReturnKeepAssembled=1. | — |
| Bulk disable keep assembled on return | Set onReturnKeepAssembled=0. | — |
| Bulk enable only sell pre-assembled | Set onlySellPreassembled=1. With option to also seed pre-assembled to current max-available. | Enhanced |
| Bulk disable only sell pre-assembled | Set onlySellPreassembled=0. | — |
| Bulk sync with raw materials | Trigger a one-shot dynamic-adjustment recompute for each member. | — |
| Bulk BOM creation (from template) | Create N new BOMs against a template, all into this container. | — |
That’s roughly 16 verbs — about a dozen common ones plus the creation paths.
Subscription gates
Section titled “Subscription gates”Two are Enhanced-only:
- Bulk enable auto-generate material list.
- Bulk enable only sell pre-assembled quantities.
The corresponding disable verbs work on all plans (so you can always unset Enhanced settings if your subscription lapses).
How bulk actions are dispatched
Section titled “How bulk actions are dispatched”Each bulk verb iterates over the selected member IDs and calls the per-BOM endpoint that the BOM detail page uses. There’s no special “bulk update” endpoint — the work is split into N per-BOM updates, each in its own transaction.
This has implications:
- Not atomic. If a failure happens halfway through, some BOMs are updated and others aren’t. The error toast tells you what succeeded and what didn’t.
- Sequential. Calls await each other. Large containers (100+ members) can take several seconds.
- No deduplication. A bulk-enable on a flag that’s already
1is a no-op for that BOM (the column doesn’t change), but the row’slastUpdatedadvances. - Mutual exclusion is not bulk-aware. The dynamic adjustment / maintain inventory level toggle pair is mutually exclusive in the per-BOM UI. The bulk verbs don’t replicate this check — bulk-enabling both would produce inconsistent state. Avoid stacking conflicting bulk operations.
Bulk sync with raw materials
Section titled “Bulk sync with raw materials”This deserves its own callout. The “Synchronize with raw materials” action triggers a dynamic-adjustment recompute for the BOM. Bulk-running this across a 100-member container makes 100+ Shopify API calls — watch for rate-limit issues.
Use cases:
- After a manual inventory adjustment that affected many components.
- After fixing a botched execution log.
- During incident recovery.
Bulk operations NOT yet available
Section titled “Bulk operations NOT yet available”The verb list above is exhaustive. Things you might expect but won’t find:
- Bulk pre-assembled quantity adjust. Today operators must adjust per-BOM. There’s no “set all members’ pre-assembled to 0” verb.
- Bulk container-membership transfer. No “move all selected to a different container” — only remove (then add to another).
- Bulk price/cost edit. No bulk-set unit price across members.
- Bulk Shopify resync. No bulk equivalent of the per-BOM enrich-data operation.
If your workflow needs one of these, file a feature request — they’re not bug reports.
Common gotchas
Section titled “Common gotchas”- Bulk delete is irreversible. No soft-delete. Audit logs survive (the execution log doesn’t FK to BOM rows), but the BOMs themselves are gone.
- Dynamic-adjustment + maintain-same level mutex. Don’t bulk-enable both on the same selection.
- Mixed-state selections. Toggle verbs are absolute —
Bulk enable dynamic adjustmentsets=1for everyone, even those already at=1(no-op for them) and those currently at=0(flipped).
Where to next
Section titled “Where to next”- BOM settings reference — what each toggle does.
- Dynamic adjustment — what bulk-sync triggers.
- Creating a container — get started.