Skip to content

4. Product Variants

[← Product Management]/03-product-management/ · [Index]/00-index/

4. Product Variants

Verified against: Medusa admin dashboard 2.18.0 (product-create Variants step, product-image-variants-edit, product-variant-edit — source-read directly), plus real seed data in services/medusa/src/migration-scripts/initial-data-seed.ts.


When variants should be used

Use a variant when the same product comes in different sellable versions that share one title, description, and set of marketing images, but differ in something like size or weight. Use a new product instead when the item is meaningfully different (different name, different description, different oil).

Real example — both existing products use this pattern:

Wood Cold Pressed Groundnut Oil (one product) has an option called “Size” with three values, giving three variants:

  • 250ml
  • 500ml
  • 1000ml

Wood Cold Pressed Coconut Oil follows the identical pattern.

WARNING — do not assume Sindhu Naturals sells sizes beyond these three. A 5L size has been discussed but does not exist in the catalog — there is no packaging artwork for it yet. Do not create a 5L variant without confirming artwork and pricing exist first.

How variants are created

(Verified in the product-create wizard’s “Variants” step)

  1. Define one or more Options (e.g. an option titled “Size”).
  2. For each option, list its Values (e.g. “250ml”, “500ml”, “1000ml”).
  3. The system automatically generates one Product Variant row per combination of values (with one option like Size, that’s one variant per size — with two options, e.g. Size × Color, you’d get every combination).
  4. Each generated variant row is then given its own Title (auto-filled from the option value), SKU, and price.

A variant can also be added to an existing product later via its own “Add Variant” flow — that form has three tabs: Details (Title, SKU, Manage Inventory toggle, Allow Backorders toggle), Inventory Kit, and Pricing.

Variant fields

Original brief fieldWhere it really isNotes
Variant name“Title,” set from the option value (e.g. “500ml”)
SKUVariant’s own fieldReal pattern used: SINDHU-GRN-500, SINDHU-COC-1000, etc. — brand prefix + product code + size
PriceVariant’s own Pricing tabSee [Section 3 — Pricing]/03-product-management/#pricing — no separate MRP field exists
MRPNot a separate fieldSelling Price is the only price field in this admin
WeightVariant edit page → Attributes groupReal values: 230g / 460g / 920g for 250ml / 500ml / 1000ml
DimensionsVariant edit page → Attributes group (Width, Length, Height)TO BE CONFIRMED — not populated for either existing product
StockInventory section (see [Section 5]/05-inventory-management/)Each variant automatically gets its own inventory item when “Manage Inventory” is on
BarcodeVariant edit page → Inventory groupTO BE CONFIRMED — not populated for either existing product. EAN and UPC fields also exist alongside it
ImageProduct’s image gallery, optionally tagged to specific variant(s)See below
Variant-specific attributesVariant edit page → Attributes group: Weight, Width, Length, Height, MID code, HS code, Country of Origin, MaterialHS code here can differ per-variant from the product-level metadata.hsn_code — for consistency, keep them matching unless a specific size genuinely has a different HS classification

Variant images

A gallery image on the product can optionally be tagged to one or more specific variants (via each image’s own “Edit” action → assign variants). If untagged, an image is treated as belonging to the whole product / shown for every variant.

INFO: Neither existing product currently uses per-variant image tagging — all gallery images are shared across all three sizes of that product, since the bottle artwork looks the same regardless of size. This feature would matter if, say, a future product used visibly different packaging per size.

Product vs. Variant vs. SKU

TermWhat it isExample
ProductThe overall sellable item — shared title, description, images, HSN/GST metadata“Wood Cold Pressed Groundnut Oil”
VariantOne specific purchasable version of the product — has its own price, weight, and stock“500ml”
SKUThe unique inventory-tracking code for one exact variantSINDHU-GRN-500

A customer buys a variant (they pick “500ml,” not just “Groundnut Oil”). The system tracks inventory by SKU, one per variant. The product is the shared container that groups related variants together for browsing/marketing purposes.


[← Product Management]/03-product-management/ · [Index]/00-index/ · [Next: Inventory Management →]/05-inventory-management/