A variant is one specific buyable version of a base product — a particular size, color, material, or configuration — that shares the same core listing as its siblings but carries its own price, stock level, and images. A t-shirt available in three colors and four sizes has twelve variants, each a distinct sellable unit even though shoppers experience them as one product page. In a feed, variants are what make it possible to sell "options" without either merging everything into one row that can't track individual stock, or exploding the catalog into disconnected listings that no longer read as one product.

Why Variants Matter for Feed Structure

Getting variants right in a feed is largely about avoiding two opposite failures: collapsing them into a single row loses the ability to track price or availability per option, while listing them with no connection to each other clutters search results with what looks like duplicate products. Retailers with large variant counts — footwear brands with dozens of size-color combinations per style, for instance — feel this most acutely, since even small structural mistakes multiply across thousands of rows. Handling variants well is also directly tied to conversion, since a listing that correctly shows one size out of stock while three others remain available keeps a shopper in the funnel instead of bouncing them to a competitor.

How Variants Work

Each variant is submitted as its own item in the feed, with its own unique sku and id, but all variants of the same product share an item group ID so the platform can cluster them into a single merchandised listing. The differentiating attributes — color, size, material — are declared as separate fields on each variant row, which is what lets a shopping platform build the selector shoppers interact with. Pricing, images, and availability are set independently per variant, since it's entirely normal for one size to sell out while others remain in stock.

Example: Two Variants of One Product

<item>
  <g:id>SKU-92310-S</g:id>
  <g:item_group_id>MERINO-TEE-2024</g:item_group_id>
  <title>Merino Wool T-Shirt - Navy, S</title>
  <g:size>S</g:size>
  <g:color>Navy</g:color>
  <g:availability>out of stock</g:availability>
  <g:price>45.00 USD</g:price>
</item>
<item>
  <g:id>SKU-92310-M</g:id>
  <g:item_group_id>MERINO-TEE-2024</g:item_group_id>
  <title>Merino Wool T-Shirt - Navy, M</title>
  <g:size>M</g:size>
  <g:color>Navy</g:color>
  <g:availability>in stock</g:availability>
  <g:price>45.00 USD</g:price>
</item>

Each variant tracks its own availability independently — the small is sold out while the medium remains purchasable — but the shared g:item_group_id keeps them presented as one product.

Related Concepts

Variants only cluster correctly when the item group ID linking them is consistent and each row's sku is unique, and getting both right is ultimately what determines whether a product feed represents a catalog's real merchandising structure. Retailers restructuring a catalog around variants for the first time can find a practical walkthrough in Winning with Variants: How to Structure Product Feeds for More Conversions.