Skip to content

Weight

Every raw materialRaw 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 → can carry an optional physical weight — a value plus a weight unit (2.5 kg, 300 g, 8 oz). It’s separate from the unit of measure: the unit is how the material is counted in a recipe (m, pcs, L); the weight is how much one of those units physically weighs.

From the per-material weights, Assemblified derives a calculated weight for every 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 → and sub-assemblySub-AssemblyA reusable assembly block that composes into bigger BOMs. Define it once, include it in any BOM. At execution time, Assemblified expands the sub-assembly into its own components recursively. Read more → — the summed, unit-converted weight of everything the recipe consumes. Planning, inventory, cost, and execution are unaffected; weight is purely informational.

  • The weight field — value, unit, and “blank vs zero”
  • Editable (virtual) vs mirrored from Shopify (linked)
  • Calculated weight on BOMs and sub-assemblies
  • Where weight shows up
  • Import / export
  • Common gotchas

A raw material’s weight is two pieces:

  • Weight value — a number ≥ 0. Blank means unknown (not zero). An explicit 0 is a valid weight and stays distinct from blank.
  • Weight unit — must be an active unit in the weight category (kg, g, mg, lb, oz). It’s chosen from its own dropdown, independent of the material’s consumption unit.

The two travel together: a value with no unit is rejected, and a unit with no value is dropped. Validation uses these exact messages:

  • Weight must be a number greater than or equal to 0.
  • Weight unit is required when weight is set.

Where a material’s weight comes from depends on its type — the same split as unit cost.

Material typeWeight sourceIn the edit sheet
VirtualAssemblified-managed — you type it in.Editable.
Shopify-linkedMirrored from the Shopify variant.Read-only.

For a Shopify-linked material, weight is pulled from the variant’s Shopify weight (Measurement → Weight) and kept current automatically — you don’t (and can’t) edit it in Assemblified:

WhenWhat happens
You add the variant (resource picker)Weight is copied from Shopify alongside name, SKU, and cost.
You click Refresh infoWeight is re-pulled from Shopify with the other variant fields.
Stock/variant changes in ShopifyThe INVENTORY_ITEMS_UPDATE webhook refreshes the mirrored weight.

For a BOM or sub-assembly, Assemblified computes a calculated weight on read — it’s never stored. The math is one recursive pass:

finished weight = Σ ( component quantity × component weight ), converted to the canonical weight unit.

  • Canonical unit. The first active weight-category unit (normally kg). Every component’s weight is converted into it before summing, so a recipe mixing g and lb components still produces one clean total.
  • Waste is excluded. Unlike the cost roll-up, the weight roll-up ignores each component’s waste percentage — scrap isn’t part of the shipped product’s weight. (This is a deliberate divergence from cost, which includes waste.)

If the total can’t be computed, the roll-up reports unavailable with a specific reason instead of a number:

MessageCause
Calculated weight unavailable: no active weight units.No weight-category unit is active, so there’s no canonical unit to convert into.
Calculated weight unavailable: circular sub-assembly reference.A sub-assembly references itself (directly or via a cycle).
Calculated weight unavailable: missing weight unit conversion.Two component weight units have no conversion between them (define one under unit conversions).
Calculated weight unavailable: one or more components have no weight.At least one component’s weight is blank/unknown.

The reasons are checked in that order — the first one that applies is the one you’ll see.

  • Raw-material detail page — the Overview tab shows the material’s own weight, read-only (2.5 kg, or when unknown; 0 kg stays distinct from blank).
  • Edit sheet — a Weight + Weight Unit pair. Editable for virtual materials, read-only for Shopify-linked.
  • Raw-material export (CSV / XLSX) — Weight and Weight Unit columns.
  • BOM and sub-assembly exports — the calculated weight as Weight + Weight Unit columns (or the exact unavailable message in the Weight column when it can’t be computed).

The raw-material CSV/XLSX template carries two optional columns:

  • Weight — a non-negative number, or blank if unknown. Requires a Weight Unit.
  • Weight Unit — a weight-unit short name. It must resolve to an active weight unit (kg, g, lb, oz, …).

Blank weight is kept as unknown (never coerced to 0); an explicit 0 round-trips back as 0. Exporting raw materials and re-importing the file preserves weights unchanged.

BOM and sub-assembly exports include the derived weight columns, but their imports never set entity weight — calculated weight is computed from the components, never written directly.

  • Weight unit ≠ consumption unit. A material counted in m (the consumption unit) can weigh 0.3 kg per metre (the weight). They’re independent fields with independent dropdowns.
  • Blank is not zero. A blank weight means “unknown,” and any roll-up that includes the material reports one or more components have no weight. If a component genuinely weighs nothing, enter 0 explicitly.
  • Shopify weight is read-only here. To change a Shopify-linked material’s weight, edit it on the Shopify variant — Assemblified mirrors it back on the next sync. It won’t accept an edit from the Assemblified side.
  • Mixed weight units need a conversion. If components weigh in different units (g and lb), the roll-up needs a conversion between them and the canonical unit. Missing one yields missing weight unit conversion. The five seeded weight units (kg/g/mg/lb/oz) all convert to kg out of the box.