Product Variants
Sell the same product in multiple options (sizes, colours, pack formats) with each variant tracked independently for pricing, inventory, and fulfillment.
- Variants tracked independently
Sizes, colours, materials. Each variant gets its own SKU and stock level, while sharing the parent product's description and category.
- Pricing per variant, when it matters
Override price at the variant level only where it differs. Leave blank to inherit from the parent. No maintaining 20 near-identical price records.
- Exact variant on every document
Sales orders, POs, and fulfillments all reference the specific variant, not just 'blue t-shirt' but 'blue t-shirt, medium.'

What it does
Lets you create and manage variants of a product, such as different sizes, colours, or materials, each with its own SKU, pricing, and status. Variants share the parent product's description and category but are tracked independently for ordering, inventory, and fulfillment.
What it replaces
Replaces creating separate product records for each size, colour, or pack variant, duplicating descriptions, categories, and supplier links across what is essentially the same product.
Who it's for
Manufacturers and distributors whose products come in multiple options that need separate tracking: different pack sizes (5L vs 25L drums), colours, materials, or grades. Common in chemicals, food & beverage (flavour variants), cosmetics, building materials (different finishes or gauges), and any wholesaler carrying the same product in multiple configurations. Less relevant for businesses where every product is truly unique with no shared attributes.
What problems it solves
- Products that come in multiple options need separate stock tracking. A t-shirt in Small, Medium, and Large, or a chemical in 5L and 25L drums, each needs its own SKU and inventory count. Variants let you manage these under one product without creating duplicate product records.
- Pricing differences between options are hard to manage. Each variant can have its own unit price, or leave it blank to inherit the parent product's default price, so you only override pricing where it actually differs.
- No visibility into which specific option was ordered or shipped. Because each variant has its own SKU, sales orders, purchase orders, and fulfillments reference the exact variant, not just the generic product.