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)
- Define one or more Options (e.g. an option titled “Size”).
- For each option, list its Values (e.g. “250ml”, “500ml”, “1000ml”).
- 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).
- 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 field | Where it really is | Notes |
|---|---|---|
| Variant name | “Title,” set from the option value (e.g. “500ml”) | |
| SKU | Variant’s own field | Real pattern used: SINDHU-GRN-500, SINDHU-COC-1000, etc. — brand prefix + product code + size |
| Price | Variant’s own Pricing tab | See [Section 3 — Pricing]/03-product-management/#pricing — no separate MRP field exists |
| MRP | Not a separate field | Selling Price is the only price field in this admin |
| Weight | Variant edit page → Attributes group | Real values: 230g / 460g / 920g for 250ml / 500ml / 1000ml |
| Dimensions | Variant edit page → Attributes group (Width, Length, Height) | TO BE CONFIRMED — not populated for either existing product |
| Stock | Inventory section (see [Section 5]/05-inventory-management/) | Each variant automatically gets its own inventory item when “Manage Inventory” is on |
| Barcode | Variant edit page → Inventory group | TO BE CONFIRMED — not populated for either existing product. EAN and UPC fields also exist alongside it |
| Image | Product’s image gallery, optionally tagged to specific variant(s) | See below |
| Variant-specific attributes | Variant edit page → Attributes group: Weight, Width, Length, Height, MID code, HS code, Country of Origin, Material | HS 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
| Term | What it is | Example |
|---|---|---|
| Product | The overall sellable item — shared title, description, images, HSN/GST metadata | “Wood Cold Pressed Groundnut Oil” |
| Variant | One specific purchasable version of the product — has its own price, weight, and stock | “500ml” |
| SKU | The unique inventory-tracking code for one exact variant | SINDHU-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/