Skip to content

Material metafield tracking

Assemblified lets you attach custom fields — lot numbers, expiry dates, supplier IDs, calibration dates, inspection flags — to raw materialsRaw materialThe atomic component of a BOM or sub-assembly. Two flavors: a Shopify-linked variant (inventory tracked in Shopify) or a virtual material (DO-side inventory only). Both kinds appear in the same component picker and are consumed identically when a BOM fires — except virtual materials never trigger a Shopify call. Read more → , then capture per-production-batch values inside work ordersWork 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 → . The system has three layers: a definition you create once, a default value you set on each material, and a per-batch value entered when a work order is built. Linking a definition to Shopify is optional.

  • What a material metafield is
  • Create a metafield definition
  • Connect a definition to Shopify (optional)
  • Set a default value on a raw material
  • Track per-production-batch values in work orders
  • Common use cases

A metafieldMetafieldA custom key-value field attached to a material — examples include lot numbers, expiry dates, supplier IDs, and inspection flags. Metafields live as definitions in Settings, hold per-material defaults on raw materials, and capture per-production-batch values inside work orders. They optionally link to a Shopify metafield so values can be pulled in from Shopify. Read more → is a custom key-value field that travels with a material. The same definition is reused everywhere a material is referenced, so once you’ve defined “Lot Number” you can capture it on any material on any work order.

The data flows in three layers:

LayerWhere you edit itWhat it captures
1. DefinitionSettings → MetafieldsThe name, type, and optional Shopify link. Reusable across every material.
2. Per-material defaultRaw material detail → Metafields tabA current value on the material itself. Optionally pulled from Shopify.
3. Per-batch valueWork order → Metafields tabThe value for this production run, either across all units or per-unit.

Definitions support four types — text, number, date, boolean — and the input on every layer adapts to match.

Definitions live in Settings → Metafields. The same list shows on every material’s metafields tab, so add anything you’ll want to capture before you start filling in values.

  1. Open Settings → Metafields. The tab lists every definition the shop has, with type and Shopify-connection columns.

  2. Click “Add Metafield”. A modal opens.

  3. Name the field. Keep it operator-friendly — “Lot Number”, “Supplier”, “Expiry Date”. The name is what shows up on raw materials and work orders.

  4. Pick a type. Text, Number, Date, or True/False. Type is permanent — you can’t switch a definition from text to date later without deleting and re-creating.

  5. (Optional) Add a description. Shows up as helper text on the input.

  6. (Optional) Link to Shopify. Toggle on if you want this definition to mirror a Shopify metafield — see the next section.

  7. Save. The definition is immediately available on every material’s metafields tab.

Editing a definition only changes its name, description, and Shopify link. Existing values keep their snapshots (see Track per-production-batch values). Deleting a definition cascades and removes every recorded value across raw materials and work orders.

Connect a definition to Shopify (optional)

Section titled “Connect a definition to Shopify (optional)”

When you toggle Link to Shopify Metafield on, you pick:

  • Owner type — Product or Product Variant. Determines which Shopify metafield namespace + key the link maps to.
  • Shopify metafield — a dropdown populated from the Shopify Admin API listing the existing metafield definitions for that owner type.

Once linked, Assemblified can pull the current Shopify value into the per-material default. The pull is one-way — values flow from Shopify into Assemblified, not the other way around. The link gives you:

  • A prefilled value when you assign the definition to a material (the current Shopify value populates the input).
  • A Sync from Shopify button on the raw material’s metafields tab to refresh values later.
  • An “Overridden” badge if you change the local value so it no longer matches Shopify, with a Reset button to pull the Shopify value back in.

Once a definition exists, you assign it to specific materials and give it a starting value.

  1. Open the raw material detail page. Raw Materials → pick a material.

  2. Switch to the Metafields tab. The tab lists every metafield already assigned to this material, with a value column, a source badge (Manual or Shopify), an optional note, and history.

  3. Click “Add Metafield”. A modal opens with a definition picker — only definitions that aren’t already assigned to this material show up.

  4. Pick a definition and enter a value. If the definition is Shopify-linked, the current Shopify value prefills the input. Override it if needed.

  5. (Optional) Add a note. Free-text — useful for “received 2026-01-15” or “verified by ops”.

  6. Save. The value is now the default for this material everywhere it gets used.

If any values on the page are Shopify-linked, a Sync from Shopify button appears in the card header. Clicking it refreshes the recorded Shopify value and the lastSyncedAt timestamp without overwriting your local override — the Override badge stays on so you can see the divergence and decide whether to reset.

Every change — create, update, reset, sync — is recorded to a per-value history log, accessible from the row’s history icon. Use it to audit who changed a supplier ID and when.

Track per-production-batch values in work orders

Section titled “Track per-production-batch values in work orders”

The headline use case. When a work order is created, every assigned material brings its definitions along. Each production batch can record its own values without affecting other work orders or the material’s default.

Open a work order, switch to the Metafields tab. Each material lists its assigned definitions with two tiers to choose from:

  • All units (material-level). One value applies to every produced unit. Use this when “this whole batch came from supplier X” or “every unit shares the same lot number”.
  • Per unit. Distinct values per unit (1, 2, 3, … up to the run quantity). Use this when batches arrived at different times — units 1–5 expire June, units 6–10 expire August — or when each finished good carries a unique serial number.

When a material is added to a work order, Assemblified copies the raw material’s current default into the work order with source: prefill so operators don’t re-type values that already exist. Prefill only runs once per material — editing the raw material default later does not retroactively update active work orders.

Definition name, type, and description are snapshotted at the moment a value is entered. Renaming “Lot Number” to “Batch ID” later won’t rewrite history on already-completed work orders — they keep showing whatever the field was called when the value was captured.

On work order completion, material-level values (the All units tier) get bundled into a material_requirements_json metafield written to every linked Shopify order — picker and shipper workflows can read that JSON to see what materials and what notes/lot/supplier values went into the order. Per-unit values stay local to Assemblified and surface in pick lists, PDF reports, and audit logs. See Shopify sync for the completion overlay details.

  • Lot / batch number (text). Often per-unit when each finished good carries its own lot, or material-level when one batch supplies a whole work order.
  • Expiry date (date). Usually per-unit, since one delivery can mix batches with different shelf lives.
  • Supplier ID (text, often Shopify-linked). Material-level — the supplier doesn’t change unit by unit, and a Shopify link keeps it in sync with your product catalogue.
  • Pre-inspected flag (boolean). Material-level on incoming inspection — flips to true once a QC pass logs the batch as cleared.
  • Calibration date (date). For tooling or measurement-sensitive materials — captured at receipt and audited later.