Modelling a catalogue and its variants without regret

Building the store 9 min read

Shelves of the same garment in different sizes and colours, neatly sorted
The shelf knows the difference between a product and a variant. Your database should too.

The product model is the decision that quietly determines how hard everything else will be. Stock, pricing, search facets, marketplace feeds and returns all read it, and all of them inherit any confusion in it.

The single most common mistake is modelling the thing you photograph rather than the thing you ship.

The distinction that matters#

Modelling a catalogue and its variants without regret — The distinction that matters
ConceptWhat it isWhat it must own
ProductThe thing a customer choosesTitle, description, images, category
VariantThe thing you actually shipSKU, price, stock, weight, barcode
OptionThe axis of choiceSize, colour — with a fixed value list
BundleSeveral variants sold as oneIts own SKU and its own stock rule

Rules that save a rebuild#

  1. Every sellable thing has a SKU. If it cannot have one, it is not sellable on its own.
  2. Option values come from a controlled list, never free text. "Blue", "blue" and "Navy Blue" become three facets otherwise.
  3. Price and stock live on the variant, always, even when today all variants share a price.
  4. Media can belong to a variant, not only to the product — colour variants need their own images.
  5. Do not encode meaning in the SKU string that is not also a real field.

Things that look like variants and are not#

Personalisation (an engraved name), quantity breaks, and bundles are often forced into the variant model because it is the nearest hammer. They belong elsewhere: personalisation as line-item data, quantity breaks as pricing rules, bundles as their own product with a stock policy.

If your variant count multiplies past a few hundred for one product, you have modelled something that is not a variant.

Attributes, categories and the feed you will need later#

Marketplaces, comparison engines and your own faceted search all want structured attributes: material, dimensions, compatibility. Capture them as fields from the beginning. Extracting them from prose descriptions two years later is a data project nobody enjoys.

Frequently asked questions

Should price live on product or variant?

Variant. Even if every variant costs the same today, that will change and the migration is unpleasant.

How do I handle made-to-order personalisation?

As line-item data captured at add-to-cart, not as an explosion of variants.

When should attributes be structured fields?

Immediately. Faceted search, feeds and filters all need them, and prose cannot be filtered.

product catalogue modellingproduct variantssku structureecommerce data modelproduct attributes

All guides

Last updated 2026-08-05 by ecommercedevelopment.info · About us

Written by builders

Every guide is written by developers who ship and maintain real stores, not spun from other sites.

Reviewed on a schedule

Platforms and payment rules change. Each guide carries the date of its last review, and we publish the date even when nothing changed.

No paid placements

No platform, theme shop, app vendor or agency can buy a mention, a ranking or a link here.

Twelve languages

Every guide is translated, not machine-popped — each language has its own URL and its own review date.

Limits named

We say plainly when a hosted platform or a marketplace listing would be cheaper and more reliable than a custom build.