Virtual materials
A 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 → is a material with no Shopify variant. Assemblified owns its stock entirely — no Shopify product, no Shopify inventory, no Shopify traffic at all.
Virtual materials appear in the same component picker as Shopify-linked ones, and they’re consumed in exactly the same way when an order executes. The only difference is that nothing is sent to Shopify for them.
On this page
Section titled “On this page”- When to use a virtual material
- Creating one
- Adjusting stock
- What happens at execution time
- Multi-location
- Gotchas
When to use a virtual material
Section titled “When to use a virtual material”Pick virtual when:
- Consumables. Tape, glue, screws, packaging — things you don’t want cluttering your Shopify catalogue.
- Trace components. Tiny per-assembly quantities where setting up a Shopify product is overkill.
- Non-Shopify suppliers. You buy from a vendor that doesn’t sit in Shopify, but you still want to track depletion.
- Internal-only items. Materials that should never appear in any storefront, even hidden.
- Labour. An hour of someone’s time, priced per hour. See Track building cost.
Pick Shopify-linked when:
- You also sell the material on its own.
- You want Shopify’s location and inventory features (transfers, and anything else Shopify does natively).
- Something outside Assemblified manages the stock.
Creating a virtual material
Section titled “Creating a virtual material”- Go to Raw materials. Create virtual material is the primary button in the title bar, and it’s there in every view — you don’t have to switch to the Virtual materials view first.
- Choose what you are adding: One material, A product with several variants, or Upload a spreadsheet (which hands you over to the importer).
- Fill in the form:
- Product name and Variant name (both required) — Assemblified keeps the same product-and-variant shape Shopify uses, so a material can have several variants under one name.
- SKU (optional) — yours to choose, not bound to Shopify.
- Unit — how recipes measure this material (
pcs,kg,m,L, …). Fifteen are seeded by default; add your own under Settings → Units. - Weight and Weight unit (optional) — the physical weight of one unit. On a virtual material this is yours to edit, unlike a Shopify-linked one where it is mirrored.
- Unit cost and Unit price (optional but recommended) — what one unit costs you, and what it sells for if it’s ever sold on its own.
- Vendor (optional) — the supplier.
- Product type and Category (optional) — used to group materials on pick lists. Pick from the values already in use in your store, or type your own.
- Specifications — free-form notes.
- Image URL (optional).
- Non-essential material — see Non-essential materials.
- Fill in Opening stock: one Opening quantity per location, right there in the dialog. Leave a location blank if the material is not stocked there.
- Save. If you chose the multi-variant path, add each variant with its own SKU, cost, weight and opening stock before saving — they’re all created under the one product.
The material is now usable in any bill of materials or assembly bill.
Adjusting stock
Section titled “Adjusting stock”Assemblified holds a virtual material’s stock per location. You change it from:
- The material page. In Stock per location, click the Available figure for a location, type the new one and press Enter. It’s written immediately for that location.
- The row’s Restock action, or Restock inventory in the title bar or the bulk bar. Both open Restock materials, the grid that changes many materials and locations at once, with Adjust by and Set to modes and a filled-template upload.
- The create dialog’s Opening stock table, when the material is new.
- The API, for custom workflows.
Every change is recorded on the material page’s History tab, with what caused it.
At execution time
Section titled “At execution time”When a bill contains a virtual material:
- It’s expanded exactly like a Shopify-linked one — the same quantity, the same location rules.
- Nothing is sent to Shopify for it.
- Assemblified’s own stock for the material is updated instead.
- The order’s execution log records the change in the same list as every other component, so the audit trail is complete.
From the customer’s side there’s no difference. On the Shopify side, no inventory moves — there’s no variant for it to move on.
Multi-location
Section titled “Multi-location”Virtual materials are per-location like everything else: each location has its own available and committed figures, and you edit each one directly on the material page or through the restock grid.
In practice most shops use virtual materials at one location only. If you run several, the All locations control in the restock grid’s toolbar narrows it to the ones you care about.
Gotchas
Section titled “Gotchas”- They aren’t in Shopify at all. No product, no variant — searching the Shopify admin will never turn one up, and the external-change refresh that Shopify-linked materials get doesn’t apply either. Every change is one you (or an order, a build run or the API) made in Assemblified, and the material page is where it lives.
- They can’t be sold on their own. If you want to sell the material directly, create a Shopify product and register the variant as a Shopify-linked material instead.
- Cost is yours to maintain. There’s no cost sync from Shopify. Set the unit cost when you create the material, and update it when prices change.
- Negative stock is clamped at zero, unless Settings → General → Allow negative inventory in Assemblified calculations is switched on. With it on, a virtual material can stay below zero instead of being clamped.
Where to next
Section titled “Where to next”- Inventory tracking — the wider picture of where stock lives.
- Restocking and stock counts — moving virtual stock in bulk.
- Importing materials — creating many virtual materials from a spreadsheet.
- Weight — editable here, and it rolls up onto the bills that use the material.
- Non-essential materials — pair with virtual for “tracked, but never the bottleneck”.
- Track building cost — modelling labour as a virtual material priced per hour.