Skip to content

The material page

Clicking a row in Materials opens the page for that one material. Five tabs, and a title bar with everything you can do to it.

  • Overview: what the material is, where its stock is, what consumes it and where it sits
  • Inventory ledger: which orders and safety stock hold this material right now
  • Metafields: your own fields
  • Settings: the one preference and your alerts
  • History: what happened to this material, step by step
  • The title bar

Everything you normally want to know, in five sections, one under the other — because those questions are asked together and used to be spread over three tabs.

Image, product and variant name, SKU, the price, the cost and the margin between them, with up to three badges: Essential or Non-essential, Shopify managed or Virtual materialVirtual materialA material tracked entirely inside Assemblified — not a Shopify variant. Useful for shop-floor consumables (glue, packaging, labour units) where you need quantity tracking but don't want a Shopify product on your storefront. Read more → , and Bill of materials when this material is also something you build — that last one is checked every time the page loads, so a bill you make later shows up straight away and links to itself.

On a Shopify-linked material the product name is the link into Shopify. Nothing here is typed into directly: Edit opens one dialog with all of it.

Unit, weight, vendor, product type, category, how many finished goods and assembly BOMs use this material, and the specifications. A material nothing uses is badged Unused. On a Shopify-linked material the fields Shopify owns carry a “Managed in Shopify” note, because Assemblified mirrors them rather than owning them — Refresh from Shopify at the top of this card re-reads them.

One row per location, with six numbers:

ColumnWhat it means
AvailableWhat you can actually use right now. Read live.
Order reservationsHow much open orders still hold. Not available stock.
Safety-stock reservationsHow much your safety-stock reservations hold. Not available stock.
Contained in pre-assembled stockHow much of this material is already built into pre-assembled products sitting on the shelf.
ResidualThe fractional leftover carried from rounding, kept so it is not lost.
Required for open work ordersHow much open work orders have already picked, plus how much they still have to pick.

Each of the last five opens a card naming what is holding the units — the orders, the bills whose safety stock holds it, the products it is built into, the build-run and safety-stock remainders, or the work orders with their picked and still-to-pick split. If a work order has no location set at all, its demand gets its own No location set row rather than being attributed to a location it was never assigned to.

Available is editable in place. Click the number, type the new one, press Enter — it is written immediately for that location. On a Shopify-linked material the change goes to Shopify; on a virtual one it goes to Assemblified’s own stock. A material whose stock is shared with your store group is locked here and says so, because shared stock is managed from the main store.

A location only appears once the material is stocked, committed or reserved at it. On a virtual material, Add location puts one on the list so you can give it an opening figure.

Every finished good and every assembly BOM that consumes this material, with how much each one takes and where. The names are plain text and the icon at the end of the row opens the BOM in a new window, so you keep this page — and the numbers above — in front of you while you check it.

Used in answers “who takes this, and how much”. Structure answers the question a table cannot: how far up this material reaches. It draws the whole chain above the material — the assembly BOMs it feeds, the assembly BOMs those feed, and the finished goods at the top — as a graph, right on the page.

A material nothing uses yet says so instead. A chain too large to draw in a card shows as much as fits and tells you how many nodes it left out. Open in the section header takes you to the full structure canvas with this material already selected.

The Order reservations and Safety-stock reservations columns on Overview tell you how much is held. This tab tells you who holds it. It lists every open order reservation and every active safety-stock reservation for this material, one row per reservation and location:

ColumnWhat it shows
ReservationThe order number, linked to the order in your Shopify admin. For safety stock, “Safety stock” and the finished good or assembly BOM that holds it, linked to its page.
StateActive, On hold (the order’s fulfillment is on hold; the units still count as owed to it and are reserved again when the hold is released) or Partly fulfilled. A second badge, Shopify update failed or Not yet sent, appears when Assemblified’s change to Shopify for that reservation has not landed.
LocationWhere the units are held, with the location’s current name.
RemainingHow much this reservation still holds of this material.
Reserved sinceWhen the reservation was created.
Resource IDThe full ID of the order, for support and for the API.

The totals here are the same numbers as the Overview columns and the Committed column on the materials list, because all of them are read from the same reservations. The list includes reservations made before this tab existed. It loads only when you open the tab, and you page through it with Next page and Previous page.

When an order’s fulfillment was put on hold, part of what it had reserved is handed back while the hold lasts, and Assemblified keeps track of how much. For some holds recorded before an earlier update it cannot tell that amount apart from an earlier release on the same order. It does not guess: it shows the smallest amount it can be sure of, as at least N, and the real figure may be higher. Overview and the materials list say “at least” for the same reservations.

  • Nothing is reserved for this material right now: no open order and no safety stock holds it.
  • Order reservations are turned off for this store: the setting is off and no safety stock holds the material. Open settings takes you to Settings → General, where the switch lives. See Order reservations.

If the ledger cannot be read, the tab says so with a Retry button. It never shows an empty list or a zero in place of numbers it could not read.

A reservation that stays open after its order is done

Section titled “A reservation that stays open after its order is done”

The ledger shows every reservation that is still open, including old ones. If you see an order there that has already shipped, been cancelled or been refunded, its reservation did not close. Check the order in Shopify first, then clean it up from Materials: tick the material, choose Inventory → Reserved quantities, select the order’s rows and choose Return to stock (the order no longer needs the units) or Write off stock (the units are gone). See Manual cleanup of remaining reservations.

Your own fields for this material — one row per stored value, with its name, type, value and note. Add a value for any definition you have set up, edit one, clear a local change back to Shopify’s value, or remove it. Sync from Shopify re-reads every value Shopify owns. Each value keeps its own change history.

See Material metafield tracking for setting the definitions up.

  • Preferences — one Non-essential material switch, saved the moment you flip it. See Non-essential materials.
  • Alerts — when you have the Alertified connection switched on, the low-stock alerts for this material are configured here. The section is simply absent when it is not.

What happened to this material, step by step, newest first. Each row is one action: one reservation, one fulfillment, one sale, one pick for a work order, one manual edit. An action can write several entries behind the scenes (for example a reservation in Shopify and the matching change in Assemblified’s own stock), and they are kept together in one row.

Each row shows:

  • Date: when the action last changed.
  • What happened: one sentence, such as Reserved 4 for order #1042, Released 2 from order #1038, Fulfilled 4 for order #1042, Picked 12 for WO-0091 or Stock set (+5) · Manual edit. The line underneath adds why it happened (for example Order cancelled or Fulfillment on hold), the location and how many entries it has.
  • Reference: the order number, work order or the bill that holds the safety stock, linked. Blank when there is nothing to link to.
  • Available ±: how much the action changed the stock you can use. Blank when it changed nothing, which is normal for some steps: a reservation in tracking mode, or a fulfillment of units that were already reserved.
  • Status: whether the action went through.

Rows are collapsed. Open one to see each entry it wrote: which stock it touched, the location, the change, the figure before and after, and its own status. An action with a single entry has no toggle and shows that entry’s details on its second line.

StatusWhat it meansWhat to do
DoneEvery part of the action went through.Nothing.
Waiting for ShopifyAssemblified sent the change and has no clear answer from Shopify yet. It settles on its own when the answer arrives.Do not repeat the change by hand. Check again later.
Not sentAssemblified deliberately did not send this change, for example because there was nothing to change.Nothing.
Not appliedThe change did not land in Assemblified’s own stock, for example because the material has no stock at that location yet, or a newer change got there first. Nothing moved.Check the location is set up for the material if you expected a change.
Shopify update failedShopify refused the change. Nothing moved.Retry the Shopify sync: see Failure handling for orders, or use Retry Shopify sync on the bill’s reservation card for safety stock.
Stock update refusedAssemblified could not change the material’s own stock, for example while Floormode manages that virtual material’s stock, or because the change would have taken the stock below zero. Shopify was not involved. Nothing moved.Check who manages the material’s stock and how much is available at that location. A Shopify sync retry does not fix this.

The change an action shows is what actually moved. A step whose stock change did not go through shows 0 for that change, never the amount it meant to move.

When Assemblified repeats a step that went wrong — the same release or fulfillment arriving again — and the repeat goes through, the action reads Done, and the failed attempt is still listed among its entries. The repeat never counts the same change twice. A Retry Shopify sync you start yourself works the same way: it adds no row of its own, and the action it retried reads Done once Shopify takes the change, with the earlier attempt still listed among its entries.

  • Everything Assemblified recorded, newest first. The last 30 days load straight away. Keep paging and History carries on into older, archived records in the same list, in the same order. Older pages can take longer to load, because Assemblified looks them up as you go.
  • Reservation steps since the grouped History. Holds, resumed holds, releases, fulfillments, write-offs, retries and safety-stock changes are recorded as their own actions from the update that introduced this grouped History. Steps before it show only where they moved stock, and an older reservation step may occasionally appear as two rows instead of one.
  • Older actions that span two days. An older action whose entries were recorded on two different days can occasionally show as two rows, one for each part.

Use Next page and Previous page to move through it. Changing the location filter or refreshing starts again from the newest action.

Further back, a material may have days or weeks with no movements at all. History moves past them on its own; when a stretch held nothing for this material it says No new stock movements in this part of the history, with Searched back to and the date it has looked back to, and Load more continues from there.

  • No older stock movements. You have reached the oldest record there is for this material. Searched back to shows how far back History looked.
  • Some older history couldn’t be loaded. Some older records could not be read just now. The rows you see are correct; only the records that could not be read are missing. Try again loads the same page again. If the notice appears on a page with no rows, History stops there rather than moving on, so you see it: use Try again, or Load more to continue past it.
  • The history changed, so the list started again from the newest entry. Something changed in this material’s history while you were paging (for example, older records were moved to the archive overnight). History starts again from the newest action and says so; page forward again to continue.
  • Edit — the primary button, and the same Edit material dialog the list uses.
  • Restock — opens Adjust stock for this material.
  • More actions holds the rest:
    • Refresh from Shopify and Reconcile inventory — Shopify-linked materials only; a virtual material has no Shopify product to refresh against, so the actions are simply not there. Reconcile also needs the local index switched on, since that is what it compares.
    • Add to group — put the material in one of your groups.
    • Delete — shows you what would be removed, and what is in the way, before anything happens.