Item Variants
Last updated 17 days ago
What are Variants?
Variants let you manage a single product that comes in multiple versions — for example, a T‑shirt in different sizes and colors, or a paint that comes in several finishes — without creating a separate, disconnected item for every combination. You define the product once as a parent item, then generate one variant per combination. Each variant tracks its own inventory, price, and movements, while the parent groups them together for reporting and easy selection in orders.
Core concepts
Parent item — The "template" item. It holds the shared information (name, category, base description, base BOM, base suppliers) and defines which attributes create the variants. A parent has no inventory of its own — you can't sell from it, adjust its stock, or move it between locations.
Variant item — A real, individual item generated from the parent. Each variant has its own asset ID, quantity per location, price, cost, stock movements, and (if enabled) serial numbers or batches.
Variant schema — The set of custom fields whose values produce variants. Only Select and Multi‑select custom fields are eligible (for example "Size" or "Color"). For each chosen field you pick which values are in scope.
How to set it up
Create or edit an item and turn on the Has Variants toggle.
Pick the variant dimensions. Open the Variant Schema Builder and add one or more eligible custom fields (Size, Color, Material, etc.). For each field, tick which values apply to this product — you can narrow them down from what the category allows.
Preview the combinations. The system computes every combination automatically (e.g. 3 colors × 3 sizes = 9 variants). You'll see them in a preview table.
Trim what you don't sell. Remove specific combinations you'll never stock (e.g. there's no "Wool / XS"). You can restore them later by re‑running generation.
Generate. Confirm to create the variant items in one go.
Each variant gets an auto‑generated asset ID in the form PARENT‑ATTR1‑ATTR2 (e.g. TSHIRT‑RED‑M), which you can override per variant.
Using variants in everyday workflows
Sale Orders, Quotes, and Proforma Orders — When adding a line item you can pick the parent; the app then asks you to choose the specific variant before the line is saved. Pricing, reservations, and fulfilment are per variant.
Purchase Orders — Same flow: select the parent, then pick the variant(s) you're buying. Receiving increases that variant's stock. Supplier catalog numbers and purchase UoM can differ per variant.
Manufacturing Orders — Start from the parent, choose the variant you're producing; the MO uses that variant's BOM (inherited or overridden).
Item list — Parents appear as a single row that you can expand to reveal the variants beneath. Filters can target variant attributes (e.g. "show me everything in Red").
The parent dashboard
The parent item page is a control tower rather than a stock card. It shows:
The variant schema (which fields and values are in use).
A variant matrix of all variants with asset ID, attributes, on‑hand quantity, and price.
Aggregated metrics computed from the variants: total quantity, total value, low‑stock warnings, and breakdowns by location and by attribute (e.g. 34 Red / 60 Blue / 26 Green).
A drill‑down into any variant for the full per‑item detail page.
These aggregated views are informational only — every actual stock action (sale, adjustment, transfer, MO) must be performed against a specific variant.
Adding and removing variants later
Add more — Edit the parent's variant schema (add a new value or a new dimension) and re‑run generation. Existing variants are preserved; only the new combinations are created.
Remove a single variant — Archive it. You can't delete a variant that has transactions or order history.
Remove the whole product — You can't delete a parent that has variants with history. Deleting the parent archives all variants together.
Things to know
Low‑stock alerts are per variant. Each variant has its own minimum level; the parent's alert summarises which variants are below threshold.
Asset IDs must be unique. If you override an auto‑generated ID, the system enforces uniqueness across all items.
Changing the parent's category updates all variants. If the new category doesn't include the custom fields used in your schema, you'll be asked to update the schema.
Deleting a custom field used as a variant dimension leaves the variants intact but invalidates the schema until you fix it.
Variants can't be turned into bundles or kits — that's a separate feature, out of scope here.
When to use Variants vs. separate items
Use Variants when items share most of their identity (name, category, base supplier, base recipe) and differ only along a few well‑defined attributes. Keep items separate when they're genuinely distinct products, even if they happen to share a name.
