Skip to content

Build Runs

A build runBuild RunOne cycle of assembly inside a work order: pick the materials, build the units, then complete (or cancel, or reverse). A work order can have many build runs over its life — each one moves a defined quantity of inventory and writes a row to the audit ledger. Read more → is one cycle of pickingPickThe first half of a build run: reserving the materials needed off the shelf and committing them to that run. After picking, the materials are no longer "available" inventory — they're earmarked for the build until you complete or cancel it. Read more → materials and completing the build. Every work order can have many build runs over its life. Each run identifies itself with a short ID like #BR-00042.

Build runs live on the Build runs & QC tab. The table there lists every run with its mode (Standard or Rework), direction, status, what it picked and produced, its Shopify sync state, and the dates it started and completed. Each row carries its own next-step button and a ⋯ menu.

  • The three modes
  • Starting a build run
  • The pick → complete cycle
  • Cancel vs. reverse
  • Reversing every build at once
  • The inventory ledger
  • Multi-item builds
  • Whole-unit consumption
  • The readiness banner
  • Pre-pick warnings

Every build run asks “What should this run do?” once, at the start, with three answers. The mode is fixed for the life of the run.

ModePick + completeQCOutput produced
Pick onlyTwo-step: pick now, complete later as a separate action.Optional, added afterwards.At completion, immediately.
Pick and completeOne-shot: pick and complete in the same action.Optional, added afterwards.Immediately at the end of the action.
Pick, complete and send to QCOne-shot: pick and complete in the same action.Expected. The run waits for a review.Deferred — output only lands in pre-assembled stock once a QC review approves it.

A merchant guide that walks all three modes side-by-side lives at work-order flows.

Start build run sits in the Build runs card’s heading row, and it is also the work order’s primary button while there is work left to do. In draft it is disabled with Mark the work order ready first beside it; on a completed or cancelled work order it is gone.

The dialog, Start a build run, asks for:

  • What should this run do? — one of the three modes above.
  • Production location — taken from the work order. Changing it here saves straight away, on the work order itself.
  • Items to build — a tick and a quantity per item, each one showing “N of M still to build”. An item with nothing left to build cannot be ticked, and a quantity above what remains is refused on the spot.
  • Note — anything worth recording about this run.

Under that, a live preview table — What this run will consume — lists every material the run would take: Material · SKU · Consumed · Shortage · From. It refreshes as you change the items and quantities.

If any material would go into negative inventory, a readiness banner appears at the top of the dialog — and whether you can still start depends on the Allow negative inventory setting. See The readiness banner and Pre-pick warnings below.

One primary button, Start build run, fires the run.

A build run goes through these states:

picking ─complete──> built ─reverse─> reversed
│
├─cancel──> cancelled
  • picking — the run has reserved (or “committed”) the materials but hasn’t consumed them yet. Materials are no longer “available” but still on the books locally. In Pick and complete and Pick, complete and send to QC, the run only stays in picking momentarily before transitioning to built.
  • built — the materials have been consumed (committed → consumed in the ledger), and the produced units have either landed in pre-assembled stock (the first two modes) or are awaiting QC (the third).
  • cancelled — you cancelled the pick before completing. Reserved materials go back to available stock; nothing is consumed; nothing is produced.
  • reversed — you reversed a built run. Materials go back from consumed to available; produced output is rolled back; the work order’s built quantity for the run’s items drops.

You can’t transition out of built except by reversing. You can’t transition out of cancelled or reversed at all.

The row’s next-step button follows this: Complete while the run is picking, then Review (a run built for QC and waiting) or Add QC (a run built without it), and nothing once a review has been recorded. The ⋯ menu carries Complete run, Cancel run, Reverse run and Retry Shopify sync as each becomes relevant.

Both undo a build run, but they target different states:

  • Cancel is for an open picking run. The materials it reserved haven’t been consumed yet, so cancellation just releases them back into available stock. No consumption ever happened. The confirm says so: “The materials this run picked are given back. The run stays on record as cancelled.”
  • Reverse is for a completed built run. The materials have been consumed, so reversal walks the ledger backwards: materials go from consumed back to committed, then from committed back to available. Produced output is rolled back. If the work order is completed and you reverse all its build runs, Assemblified un-completes it so totals stay consistent.

If you reverse a run that was synced to Shopify, the Shopify side is also reversed — the original decrement gets a compensating increment, and the completion-time output sync is rolled back. See Shopify sync for the full retry/compensation behaviour.

Reverse all builds, in the work order’s More actions menu, reverses every execution on the work order that has not already been reversed — in one action instead of run by run. It is offered while the work order is past ready and still has standing builds.

Every material movement on a work order is recorded. You don’t normally need to read it directly, but understanding the model helps when you’re chasing a discrepancy.

The “buckets” are:

  • virtual_available — local-to-Assemblified inventory at virtual locations.
  • preassembled_available — your pre-assembled inventoryPre-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 → shelf.
  • shopify_available — Shopify inventory (Assemblified doesn’t own the number; the record captures the intent and a Shopify update is pushed alongside).
  • committed — reserved by a picking run, not yet consumed.
  • consumed — used up in a built run. Once consumed, it’s gone.
  • produced — newly built output sitting in pre-assembled stock. Once produced, it’s part of the shelf.

The “phases” are:

PhaseWhat moves where
pickavailable → committed (per material).
completecommitted → consumed (inputs); null → produced (outputs).
cancelcommitted → available (inputs only; no consumed, no produced).
reverseTwo-step: consumed → committed, then committed → available. Plus produced → null for outputs.
qc_approveFor a run started in Pick, complete and send to QC: null → produced for the units a review approves.
qc_scrapReverses produced output for scrapped units (only where the output was not deferred).

Every entry carries the quantity, source bucket, target bucket, phase, and the unit cost stamped at the moment of consumption — that last one is what the Actual cost figure adds up to.

You can build several items in one run. Assemblified merges the per-item material plans:

  • If two items both need raw material R from location L, the run picks the combined quantity in one go.
  • The pick math correctly accounts for the per-item ratio so a partial run still satisfies the right portion of each item.
  • After the run completes, each item’s built quantity increments by what was assigned to it.

Multi-item builds shine when the items share components — you avoid two trips to the shelf for the same material.

When a work order plans fractional quantities of a raw material — say, 1.5 cans of paint per unit — and you do many incremental builds, the picks would naturally be fractional too. For materials sold in whole units, that’s awkward.

The Materials tab’s row ⋯ menu carries Consume in whole units only for exactly this. A line with it on wears a Whole units badge in the Consumption column, and Allow fractional consumption in the same menu turns it back off. With it on:

  • Each pick rounds the consumed quantity up to the next whole unit.
  • Across all picks on the work order, the last pick takes the residual so the total still equals the planned quantity exactly.
  • The cost is unchanged — Planned and Actual still agree once the work order is fully built.

Use it for raw materials sold in integer-only units (cases of beer, cans of paint, boxes of nails). Leave it off for materials priced and tracked per fractional unit (kg of flour).

When the preview finds that the run would take a material below zero, the Start a build run dialog shows one banner at the top, and what it offers depends on who is allowed to go negative.

“Below zero” means the quantity you asked for is larger than the stock available at the location the run consumes from — for a Shopify-tracked material that is Shopify’s own live availability at that location, not a number Assemblified keeps on the side; for a virtual material or pre-assembled stock it is Assemblified’s own figure. The check runs again when you press Start, so a colleague who picks the same shelf in the meantime cannot slip a run past it.

What the banner saysCan you start?
This run would take stock below zero (red) — “Allow negative inventory” is off for this storeNo. Start is disabled. The banner offers Open settings, because the shop setting is the one thing you can change from here that makes the run possible. Otherwise: add stock, or build fewer units.
This run would take stock below zero (red) — negative inventory is switched off for this work orderNo. Start is disabled, and there is no settings link: the switch belongs to the work order itself, not to the shop. Add stock, or build fewer units.
Some materials will go below zero (amber)Yes. The banner counts the essential and non-essential shortages, marks them in the plan below, and says “You can still build. Component stock will go negative at this location.”
Some materials could not be checked (blue)Yes. Assemblified could not read Shopify’s level for those lines, so it makes no promise about them. It is never a refusal — the run is verified again when you start it.

A work order’s own setting beats the shop’s. Each work order carries its own Allow negative inventory choice with three states: inherit the shop setting (the default), always allow, or always refuse. A work order set to refuse is refused even on a shop that allows negative inventory, and a work order set to allow starts even on a shop that clamps at zero. That is why the banner names which of the two said no — and why only the shop variant offers a settings link.

The shop-level switch lives under Settings → General → Inventory sync; see Negative inventory for what turning it on means everywhere else.

The preview table marks its shortages by tier:

  • Essential materials (raw materials and pre-assembled assembly bills the build can’t proceed without) are flagged in red.
  • Non-essentialNon-essential materialA flag on a raw material that excludes it from the dynamic-adjustment bottleneck calculation. The material is still consumed normally during BOM execution — it just doesn't gate the Shopify-displayed quantity. Use for plentiful components (labels, generic packaging) you don't want to be the bottleneck. Read more → materials (virtual buffers, for example) are flagged in amber.

The tiers say which shortage matters; whether you may proceed at all is the readiness banner’s answer. Where negative inventory is allowed, you can proceed — and if the material would be one Shopify refuses outright, a guard names those lines before the push rather than after. If you’re confident the inventory is wrong (untracked donation, stock found in a back room), proceed and adjust the inventory afterwards.