Planned, Adjusted, Actual
The three totals are the ones to learn. Planned = the recipe. Adjusted = the recipe plus your overrides. Actual = what was really consumed. Material planning & costs goes through each of them.
A work orderWork OrderA planned production run: pick materials, build the items, do QC, and complete — all tracked together. Use work orders when you're building stock ahead of demand or running a multi-day project. Read more → is a stateful production job that says “this is what we’re building right now.” It holds a plan you can edit, tracks progress through a status chain, and only moves inventory when you take a deliberate action. Use one when you’re building stock ahead of demand, fulfilling a wholesale order, or running a multi-day project that needs material reservations.
Work orders are different from order-driven BOMBill 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 → execution. A BOM that fires automatically on a Shopify order is one atomic execution. A work order is a persistent artifact: you can pause it, edit the plan, run multiple builds against it, send it through QC, and only mark it complete when the units are actually finished.
You reach them from the Manufacturing entry in the app nav, which opens the Work orders list.
Reach for a work order when any of these apply:
If you only need “an order came in, deduct the components automatically,” stick with order-driven BOM execution — see Bill of Materials → Execution.
The list is the working surface for the whole feature, and it remembers how you like to work.
The title bar. Create work order is the one primary button. Beside it, More actions holds Create from orders, Create from flow and Manage tags.
Views. Six built-in views sit across the top: All, Draft, Ready, In progress, Quality control and Completed. Switch between them with one click. You can also save your own view: set up the search, the filters, the sort order and the columns you want, then save the combination under a name of your choice. Saved views can be renamed, set as your default, and deleted, and they are shared with everyone in the shop.
The counts across the top. Five counts summarise the whole shop: Draft, Ready, In progress, Quality control and Overdue. Click one and the list filters itself down to it, so “what is waiting on QC right now” is a single click rather than a filter to build.
Search. The search box matches a work order’s name, its short ID (#WO-NNNNN) and the names of the items it plans. Type at least three characters; shorter terms are held back and the field tells you so.
Filters. Build as many conditions as you need across the work order’s own fields: status, priority, created from, tags, assignee, due date and overdue, progress, item count and item names, production and consumption location, order references, planned and labour cost, created and updated dates. Each condition has its own comparison (is, is not, contains, before, after, between, is empty, and so on), and the conditions you add show up as chips you can edit or clear individually.
Columns. Choose which columns you see and in which order, and pin the ones you always want in view. Every column carries a short description explaining what the number in it means, and column choices are saved with the view.
Order references. Turn this column on to see which Shopify orders a work order was created for, by order number (#1001). The numbers are looked up in Shopify when the column is shown, so they appear a moment after the list itself. A work order made for several orders shows the first one and how many more there are; click the arrow beside it to see all of them, each linking to the order in your Shopify admin. An order that has since been deleted in Shopify reads Order not found. If Shopify cannot be reached, the column shows the order IDs instead and a message above the list says why.
Acting on several at once. Tick the rows you want, or select everything the current filters match, and a bar appears with what you can do to the selection: move them to another status, tag them, cancel them, export them, or delete them. Results are reported per work order, so if one of them could not be moved you are told which one and why, and you can retry just those.
Row actions. Every row has its own menu for the single-work-order jobs: open it, duplicate it, tag it, cancel it, delete it. Tagging is offered on every row including completed and cancelled ones — a tag is metadata, not a lifecycle step. Cancel disappears once the work order is already completed or cancelled.
Opening a work order gives you one full-width page with five tabs.
The tab you are on is part of the address, so a link to a work order can point at the tab you meant. Older links still land on the right tab.
Its heading row carries two things on the right: a quiet Created … by … stamp, and the work order’s status badge. The status is said exactly once on the page and that is where it lives — there is no status stepper.
The card itself reads top to bottom in four blocks:
Planned, Adjusted, Actual
The three totals are the ones to learn. Planned = the recipe. Adjusted = the recipe plus your overrides. Actual = what was really consumed. Material planning & costs goes through each of them.
Items lists what the work order builds: a picture (or the item’s initials), name, SKU, what Shopify has available at the production location, what is already on the pre-assembled shelf, a Status for the item, the planned and built quantities, and any note on the row. Add item sits in the card’s heading row.
The Status is the one thing to read per row — Draft, Picked, Waiting for QC or Built — and pressing it opens the numbers behind it (what is planned, picked in open runs, built, remaining, and what QC approved, failed, sent to rework or scrapped). Beside it, each row offers one button: the next thing to do with that item, and nothing else. Start a build run while it is a draft, complete the run that holds it while it is picked, review it while it waits for QC, nothing once it is built. When two runs hold the same item there is no single answer, so the button reads “See 2 open runs” (or “See 2 runs” for runs awaiting review) and takes you to the Build runs & QC tab instead of guessing which one you meant.
When the Logistified integration is connected, a Purchase order section closes the tab. Without that connection the section is not there at all. See purchase orders.
Some conditions need your attention rather than a refusal, and the detail page says so with one banner at the top — the most serious thing first, never a stack of them. What you can meet:
| The banner says | What it means | The button it offers |
|---|---|---|
| Shopify did not accept an inventory movement | A build run pushed stock to Shopify and Shopify refused it. Shopify’s count is behind this work order until it goes through. | Retry sync |
| Shopify may hold a movement this work order never recorded | Assemblified could not tell whether Shopify applied a push. Check the inventory movements in Shopify yourself. | Mark as confirmed |
| A build run took stock below zero | A run consumed more than the location held. Nothing is broken; the stock needs reconciling. | — |
| The pre-assembled split is out of date | Pre-assembled stock moved since the plan was made, so the split between “take from the shelf” and “build fresh” no longer matches. | Reset materials |
| An item points at something that no longer exists | The bill or assembly bill behind an item was deleted. | Edit items |
| Follow-up work is still retrying | A background job started by a build run has not finished. Check the run before you treat the work order as done. | — |
| A bill in this work order is disabled at <location> | A location rule switches that bill off where this work order runs, so it is planned from the base recipe instead. | — |
The work-order surface picks up a lot of vocabulary. Here are the terms that come up most often — hover any of them anywhere in these docs for a quick definition, or jump to the glossary.