Skip to content

Bulk BOM product tags

The Tag selected BOMs dialog is the ad-hoc counterpart to default material tags. Where defaults fire automatically on BOM creation, this surface is for one-off tag changes: tagging a batch of seasonal BOMs, removing a deprecated tag from a product line, or applying a manual-only tag.

Go to Finished Goods, multi-select BOMs in the table, then open Bulk actions → Tag products. The dialog loads the selected BOMs and their current Shopify tags.

For each selected BOM, the dialog displays:

  • BOM name and the linked Shopify product/variant title.
  • Current tags on the Shopify product (chips). Click the × on any chip to mark it for removal — it goes red and gets struck through. Click again to undo.
  • A “skipped” badge if the BOM can’t be tagged. The two reasons:
    • BOM is not linked to a Shopify product. — Virtual finished goods aren’t taggable.
    • BOM was not found. — Race condition, e.g. the BOM was deleted between selection and dialog open.

Above the BOM list is a strip of predefined tags — every tag configured under Settings → Tags. Clicking one queues “add this tag to every taggable BOM in the selection.” The button changes state to ✓ once it applies to all of them.

You can also stage changes per BOM:

  • Removing a current tag — click the × on a chip on that BOM only. Other BOMs are unaffected.
  • Adding a tag to a single BOM — currently only available via the “predefined” strip (which adds to all). If you need to add a non-predefined tag to a single BOM, create the tag in Settings first (manual-only is fine), then use this dialog.

The dialog’s footer shows the pending change count. Hit Queue tag updates to send everything to the background queue. The dialog closes; toast confirms how many BOMs were updated and how many were skipped.

Pending changes are grouped by their (tagsToAdd, tagsToRemove) signature, so 50 BOMs all getting the same tag added is one queue message, not 50. Each message carries up to 250 product IDs; larger selections split into multiple messages automatically.

The queue worker writes the changes to Shopify via tagsAdd / tagsRemove GraphQL mutations.

Use caseReach for
”Every new BOM should get tagged assemblified-bom.”Default BOM tag
”Tag the 20 BOMs in our holiday collection with holiday-2026.”Bulk BOM product tags
”Strip legacy-line off all BOMs in the discontinued container.”Bulk BOM product tags (select from the container)
“Tag every BOM-backed product in the catalog, retroactively.”Default tag + the Apply to all matching products now button in Settings
  • BOMs without a Shopify product link are silently skipped (shown in the dialog).
  • Tag names must already exist on the Shopify product or come from the predefined strip — there’s no free-text “type a brand-new tag” input here. To add a brand-new tag name, create it in Settings first.
  • The queue chunks at 250 products per message, so very large selections will result in multiple messages flowing through the queue.