- Bruxel.AI Blog
- Product variants: how to model sizes, colors and versions
Product variants: how to model sizes, colors and versions
By Manuel Mattar3 min read
In short
Variants are versions of the same product that differ along one or more axes, such as size or color. They are modeled with a parent product that holds what is shared —brand, description, general photos— and child products with their own SKU that only hold what sets them apart. That avoids duplicate records and gives each channel the whole group.
The problem: the same record fifteen times
A T-shirt sold in five sizes and three colors is fifteen SKUs. If each one is treated as a separate product, the brand, description, composition and photos repeat fifteen times. When something changes, it has to change in fifteen places, and in the store buyers see fifteen nearly identical products instead of one with a selector.
Parent, children and axes
The way to avoid it is to separate what is shared from what varies:
- The parent product holds what all versions share: brand, commercial name, description, composition, general photos.
- The variants (children) are products with their own SKU that only hold what sets them apart: size, color, their photos, their stock.
- The axes are the attributes that differentiate the children: size, color, capacity. They are declared on the parent.
Axes work best as list attributes with allowed values: that way “M” is always “M” and the store can build the selector.
What channels ask for
Each channel receives variants its own way, but almost all need the same thing: to know which products form a group and how they differ.
- Google Merchant Center asks for a group identifier for variants, the same for every variant in a group and stable over time, and recommends using the parent SKU where possible. It also asks for the attributes that distinguish each variant, such as color and size.
- In structured data, Google describes variants with
ProductGroup, which lists its variants and says which attributes they vary by. - Stores often call the parent a “configurable product” and build the selector from the axes.
Common mistakes
- Variants as separate products. Duplicated records and a catalog that looks bigger than it is.
- Axes typed by hand. “Navy blue” on one child and “Navy” on another break the selector.
- An axis that is not an axis. If two “variants” have different specifications, they are probably different products.
- Photos only on the parent. Buyers want to see the color they picked.
- The group identifier changes between uploads, and the channel loses the grouping.
The description: one for all
When variants share a description, write it on the parent. If each child needs its own text, it should start from the parent's text so they all sound the same: nine descriptions written separately for nine sizes end up saying different things about the same product.
Variants, photos and stock
Each variant sells something concrete: a size that can sell out, a color that looks different. That is why, even when it shares the description with its parent, it should have:
- its own photos when it looks different, especially for color;
- its own stock, so the store can stop offering the sold-out size without hiding the whole product;
- its own identifiers, such as the GTIN, because each combination has one.
What does not change between variants is not repeated: it is inherited from the parent.
How Bruxel handles it
In Bruxel each variant is a product with its own SKU that hangs from a parent product. They are linked on import, with a parent_sku column, or later from the product record. Axes are declared on the parent —list or yes/no attributes, up to four— and, when a child's description is generated, the parent's description is passed as a reference so they all sound the same. The variants guide explains it, and the attributes guide shows how to define axes as lists.
Where to start
Look for products in your catalog that repeat with a size or color in the name. Group them under a parent, define the axes as list attributes and check that each child has its value on every axis and, if it looks different, its own photos.
The video tutorial
Video transcript
In this video, you'll group a T-shirt's sizes under their parent product.
Each size is a product with its own SKU, and they all hang from a parent product.
When you import, the parent_sku column says who each one's parent is.
Three variants, already hanging from the T-shirt.
The parent's record shows its variants.
The axes say what tells them apart, like size or color: only select or yes/no attributes, up to four.
And if the parent's record is already published, each child uses it as a reference when it's generated: they all sound alike.
In the next video, you'll link products that are offered together.
Frequently asked questions
When is something a variant and when is it a different product?
If the buyer would choose between the two options on the same page —the same T-shirt in another size—, it is a variant. If they are products compared against each other but different —two drill models—, they are separate products.
How many variation axes can a product have?
As many as the buyer needs to choose, usually one or two: size and color. More axes multiply the combinations and complicate the page; check whether one of them is really a different product.
Does each variant need its own description?
Not necessarily. The description usually lives on the parent and applies to all; variants keep what changes, such as color or size, and their photos.
Sources
About the author
Manuel Mattar
Founder of Bruxel.AI
In 2014 he founded Wolf Sellers, an e-commerce agency in Mexico City, and later Bruxel.AI, the AI-powered PIM.
See all posts by Manuel MattarTry it with your catalog
Create your free account and try Bruxel with your own products using the welcome credits.
Keep reading
· 3 min read
Categories and taxonomy: how to organize a catalog of thousands of products
A good taxonomy helps buyers find products and search engines understand your catalog. How to design the category tree and connect it with each channel.
· 3 min read
A catalog in two languages: how to translate product pages for another country
Selling in another language is not word-for-word translation. What gets translated, what is copied as is and how to keep languages in sync.
· 3 min read
AI in your product catalog: where it helps and where you need human review
AI already writes descriptions, fills attributes, proposes categories and translates. Where it pays off, where it fails and how to keep human review.