How WareSquared Models Variants
A family is the overall product (e.g. "Printable Sticker Adhesive Vinyl"). Variants are the specific sellable SKUs underneath (20" × 27.25 yds in Holo Spectrum Silver, 60" × 54.5 yds in Matte White, etc.).
Each variant carries three distinct attributes the catalog can filter on:
| Attribute | Stored on the variant as… | Example |
|---|---|---|
| Finish (effect / product type) | subcategory |
Matte White, Holo Glow In The Dark, Reflective |
| Color (the actual sticker color, often dual) | dimension_1_value |
Blue / Glow Green, Chameleon Black |
| Size | dimension_2_value |
20" × 54.5 yds |
Single-Axis Families
Some families have only ONE variant axis. For example, "Printable Sticker Adhesive Vinyl" varies only by finish + size — the finish IS the color, there's no separate dual-color tag. For these:
- finish goes in both
subcategoryANDdimension_1_value - color attribute stays empty
- size is
dimension_2_value
Two-Axis Families
"Chameleon Sticker Adhesive Vinyl" varies by finish + color + size. Holo Glow In The Dark comes in Blue / Glow Green; Reflective comes in Chameleon Black:
- finish →
subcategory("Holo Glow In The Dark" or "Reflective") - color →
dimension_1_value("Blue / Glow Green" or "Chameleon Black") - size →
dimension_2_value
Uniqueness Constraint
Each variant is uniquely keyed on (family, dim_1, dim_2). You can't have two variants under the same family with the same color + size. That's the database guarantee that keeps the catalog clean.
When to Create a New Family vs a New Variant
| Situation | Do this |
|---|---|
| New color in an existing line | Add a variant to the existing family |
| New width / roll size in an existing line | Add a variant |
| Genuinely new product type (e.g. "Chameleon" line vs "Printable" line) | Create a new family |
| Unsure | Look up the existing families by name first (the catalog import does this automatically) |
See also: Importing a Supplier Catalog, Custom Fields for Vertical-Specific Attributes