Glossary

Parent-child product variants

Parent-child product variants are a data structure that groups sellable child SKUs — each with its own GTIN, price, and stock — under a non-sellable parent record holding the shared content. The children differ only along declared variation axes such as size, color, or length. Marketplaces use the relationship to render one product page with a picker instead of dozens of separate listings.

What a parent-child relationship is in product data

A parent-child relationship states two things at once: these SKUs are the same product, and here is exactly how they differ.

The parent is a container. It carries the title, description, brand, category, and shared images. It has no price, no inventory, and no GTIN. Nobody can buy it.

The children are the real SKUs. Each has its own MPN, GTIN, price, weight, and stock. A 3/8-16 Grade 8 hex bolt offered in 1", 1-1/2", and 2" lengths is one parent and three children.

Between them sits the variation axis — Amazon calls it a variation theme, Shopify calls it an option. It declares the dimension of difference. Two rules follow from that declaration:

  • Every child must carry a value on every declared axis. A blank is not a value.
  • No two children may share the same combination of axis values. Duplicates collide at merge time.

Get those two right and the marketplace renders one page with a length dropdown. Get them wrong and you get orphans, duplicates, or a suppression notice.

Variation axes and what belongs on one

The working test: an axis is something a buyer chooses after they have decided this is the right product. Anything that changes whether the product fits the job is a different product, and needs its own parent.

A Grade 5 bolt and a Grade 8 bolt are not two colors of the same bolt. They have different tensile ratings. Someone comparing them is still deciding what to buy, not which one.

CategoryWorks as a variation axisBelongs on a separate parent
Fasteners (3/8-16 Grade 8 hex bolt)Length (1", 1-1/2", 2"), finish (zinc, black oxide)Grade 5 vs Grade 8; thread pitch 3/8-16 vs 3/8-24
WorkwearSize (M, L, XL), colorFabric weight; insulated vs uninsulated
Electrical (UL listed 600V wire connector)Count per bag (25, 100, 500)Voltage rating; wire gauge range
PaintContainer size (1 qt, 1 gal, 5 gal)Latex vs oil base; sheen, on some channels
Power toolsBare tool vs kit, on channels that allow it12V vs 18V platform

The axis list is not yours to invent. It is published per category, and your data has to match it.

Why bad variant modeling gets listings suppressed

Variant errors are structural, so they fail loudly and take the whole family down, not one field.

  • Duplicate combinations. Two children both submitted as Size: L / Color: Navy. One wins and one gets suppressed, often with no indication of which.
  • GTIN misuse. A GTIN on the parent, or the same GTIN reused across every child. A parent is not a sellable unit and must not carry one.
  • Missing axis values. A child with an empty Color drops out of the picker and becomes an unreachable orphan.
  • Theme mismatch. The flat file declares SizeColor; the rows carry only size. The upload errors out at the family level.
  • Over-wide parents. Unrelated items grouped under one parent to inherit its reviews. That is variation abuse, and it draws enforcement.
  • Splintering. The opposite failure — every length uploaded as its own parent. Faceted search then shows a page of near-identical results that compete with each other.
  • Uncontrolled axis values. "Blk", "Black", and "BLACK" fragment one facet bucket into three, so the color filter under-counts your inventory.

That last one is the quiet killer. Nothing is suppressed, no error fires, and the listing is simply harder to find.

What a complete variant family looks like

Here is the split for the hex bolt family, one parent and three children.

FieldParentChildExample (child)
SKUANG-HB38-G8one per childANG-HB38-G8-150Z
GTINnonerequired, unique00812345678901
MPNfamily-level, optionalrequiredHB38G8-150Z
Variation themedeclared onceinheritsLength-Finish
Axis valuesrequired, controlledLength: 1-1/2 in; Finish: Zinc
Price / stocknonerequired$0.42 / 4,200 ea
Title, description, brandauthored hereinherits
Imagesfamily beauty shotfinish-specific swatch
Shared specs (grade, thread)authored hereinheritsGrade 8, 3/8-16

The pattern: shared truth lives on the parent exactly once, distinguishing truth lives on the children, and nothing is authored in both places. When grade or thread pitch is copied onto every child, one of them eventually drifts.

Most catalogs already have the parent-child scaffolding — the PIM models it fine. What they lack is populated, normalized axis values across thousands of long-tail SKUs, and a clean call on which differences deserve an axis versus a separate parent. The PIM stores the structure; Anglera fills it in.

Frequently asked questions

What is a parent-child relationship in product data?

It is a link that says a group of SKUs are the same product and records exactly how they differ. The parent holds shared content — title, description, brand, images — and is not sellable. Each child is a real SKU with its own GTIN, price, and stock, distinguished by a value on a declared axis like size, color, or length.

Should size and color be separate variants or separate products?

Size and color are almost always axes on one parent, because a buyer picks them after deciding on the product. Split into separate parents when the difference changes fitness for the job — Grade 5 versus Grade 8 bolts, 300V versus UL listed 600V connectors, latex versus oil-base paint. Those are different products a buyer compares, not options they select.

Does a parent SKU need a GTIN?

No. A parent is not sellable, so it must not carry a GTIN, price, or inventory. Every child needs its own unique GTIN. Reusing one GTIN across children, or assigning one to the parent, is a common cause of upload rejections and suppressed listings on Amazon and in GDSN feeds.

Why is one of my variation children not showing on the listing?

Usually a missing or blank axis value. If a child has no value on a declared axis, it drops out of the picker and becomes an orphan — live in your feed, invisible on the page. Also check for two children sharing the same axis combination, since one of those will be suppressed silently.

How many children should one parent have?

As many as genuinely vary along the declared axes — three lengths or forty size-color combinations are both fine. The limit is relatedness, not count. Grouping unrelated items under one parent to inherit its reviews is variation abuse and draws enforcement. Category templates may constrain child counts and axis combinations, so check the template before building the family.

Related terms

See it on your own SKUs.

A 30-minute walkthrough on your categories and your supplier data.

Book a demo