Skip to content

Reconcile inventory

When Assemblified’s stored inventory state drifts from Shopify’s — because a webhook was missed, you adjusted stock manually somewhere, or you’re seeding a fresh shop — you need to reconcile. The bulk Reconcile Inventory action lets you align many BOMsBill 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 → at once, in either direction.

  • When to use the bulk reconcile vs. other tools
  • The two directions: push to Shopify or pull from Shopify
  • Step-by-step walkthrough
  • What gets reconciled
  • Reading the discrepancy preview
  • Common gotchas

Reach for bulk Reconcile Inventory when:

  • A batch of webhooks didn’t fire (network issue, app down) and your pre-assembled stockPre-Assembled InventoryStock of finished sub-assemblies and BOM items that have already been built and are sitting on the shelf. When a work order needs a sub-assembly, it draws from pre-assembled inventory first and only builds fresh ones if the shelf comes up short. Read more → is out of date.
  • You adjusted Shopify inventory directly for many products and want Assemblified to catch up.
  • You’re setting up a new shop and want to seed Assemblified from Shopify’s existing inventory.
  • You suspect drift and want a side-by-side comparison before deciding what to do.

For a single BOM at a single location, the per-BOM reconcile popover is faster.

DirectionWhat happensWhen to use
Update Shopify to match local valuesPushes Assemblified’s pre-assembled values and local index to Shopify. Shopify is the receiver.Your Assemblified counts are correct (you adjusted them deliberately) and Shopify is what’s drifted.
Update local values to match ShopifyAccepts Shopify as source of truth. Pulls current Shopify inventory into Assemblified’s pre-assembled and local index.Shopify is correct (someone adjusted inventory there directly, or another integration synced) and Assemblified missed the update.
  1. Open the Bill of Materials list page.

  2. Select the BOMs to reconcile. Use the checkboxes. You can select all on the current page, or filter first and then select.

  3. Open the bulk-actions menuMore ActionsReconcile Inventory.

  4. Choose direction. The dialog opens to a Choose reconciliation direction screen with two large buttons:

    • Update Shopify to match local values“Push pre-assembled / local index values to Shopify”.
    • Update local values to match Shopify“Accept current Shopify inventory as the correct values”.

    Click whichever applies.

  5. Wait for the preview. The dialog fetches inventory data for every selected BOM at every location. A loading spinner runs; wait for it to finish.

  6. Review the discrepancy preview. The dialog shows:

    • A header badge: “N BOMs with discrepancies” (and “M BOMs already in sync” — those are no-ops).
    • A table with one row per BOM × location combination, showing Shopify’s current value and Assemblified’s local value side by side.

    Take a moment to scan: do these numbers make sense? Are the discrepancies the ones you expected?

  7. Start the reconcile. Click Start Reconciliation. A per-BOM progress indicator updates as it processes.

  8. Read the summary. Once finished, the dialog shows aggregate counts: Total, Updated, Skipped, Errors. Click Done to close.

Two things, depending on the BOM:

  • Pre-assembled stock — for any BOM that has a non-zero pre-assembled count, the per-location values are aligned. See Pre-assembled inventory for what pre-assembled stock is.
  • Local index — Assemblified’s internal cache pointing at Shopify inventory. This is refreshed for every selected BOM regardless of pre-assembled status.

The reconcile is per-location under the hood — each Shopify location is processed separately. Multi-location stores get the full grid handled in one pass.

A typical row in the preview table shows:

ColumnMeaning
BOM nameWhich BOM this row is for.
LocationWhich Shopify location.
Shopify valueThe current count Shopify reports for this BOM at this location.
Local valueAssemblified’s count (pre-assembled, where applicable, or local index).
DifferenceThe delta. Positive means Shopify is higher; negative means Assemblified is higher.

A row with zero difference is already in sync — Reconcile will skip it. Every other row will be updated according to the direction you chose.

  • Errors per BOM don’t stop the rest. If one BOM fails (e.g., its variant was deleted in Shopify), the reconcile continues with the others. The summary surfaces failures so you can retry just those.
  • Reconcile and Synchronize with Raw Materials are different. The “Synchronize with Raw Materials” button on a BOM detail page is for dynamic adjustment — it recalculates the BOM’s displayed Shopify quantity from component availability. Reconcile is for aligning the actual stored values in pre-assembled or local index. Don’t confuse them.
  • Large selections take longer. Each BOM × location combination is processed; 100 BOMs across 4 locations is 400 reconcile operations. Expect minutes, not seconds, for large bulk runs.
  • No history view. There’s no UI table that shows past reconcile operations. If you need an audit trail, take a screenshot of the summary screen.
  • The two directions are not symmetric. toLocal on a pre-assembled-enabled BOM updates pre-assembled first, then refreshes local index — two steps internally. toShopify pushes one way. If you flip direction back and forth in quick succession, give each pass time to settle.

If you only need to fix one BOM at one location, the inline pre-assembled popover is faster — see Reconcile pre-assembled stock. Bulk Reconcile is the right tool when you have many BOMs to fix or want a discrepancy preview first.