Reference → Create a variable product with variants

Create a variable product with variants

How to sell one product in multiple sizes, colors, or combinations — each with its own price, SKU, and stock

A variable product is one product offered in several variants — a T-Shirt in Small / Medium / Large, each in Black or White. Each variant has its own price, its own SKU, its own stock count, and its own availability. On the public product page visitors pick their size and color before adding to cart; you track inventory per variant, not just per product. This guide walks you through creating a variable product from scratch: attaching attributes (Size, Color), generating the variant grid (S/Black, S/White, M/Black, M/White, L/Black, L/White), and filling each variant's details. For a 2-attribute, 6-variant product the whole setup takes about 10–15 minutes.

What is this for?

Variable products are for products with multiple pickable options at checkout. You reach for this pattern every time the same product exists in sizes (S/M/L) or colors (Black/White) or combinations of both (S/Black vs M/White). Apparel, prints with sizes, anything with finish options — variable products are the right shape.

When you click Update Product, the store renders the variant picker on the public product page. Visitors see dropdowns (or swatches, depending on the attribute's display type) for each attribute; each combination maps to a specific SKU with its own price and stock.

Variable product variant matrix
Product data Variable
General Inventory Shipping Attributes Variations Advanced
Attach attributes & values
S M L
Black White
Variations (3 x 2 = 6 rows)
Variant
SKU
Price ($)
Sale ($)
Stock
S / Black
S / White
M / Black
M / White
L / Black
L / White

Good use cases

Example 1: The T-Shirt. One T-Shirt design, three sizes (S / M / L), two colors (Black / White). That's 3 × 2 = 6 variants. Each variant has its own SKU, its own stock, and its own price (Small at $24.99, Medium at $26.99, Large at $28.99). A customer on the product page picks their size and color; their chosen combination's price and stock replace the base numbers in the cart.

Example 2: A print in three sizes. An art print sold in 8x10, 11x14, and 16x20. One attribute (Size), three variants. Each size has its own price and stock count. Visitors see a single Size dropdown.

Example 3: A limited-edition with color options. A product that comes in three colors but only one size. One attribute (Color) with Black / White / Red values; three variants. If you're using swatch-style display for the Color attribute, the public product page shows clickable color circles instead of a dropdown.

Example 4: A product where one color is not made in every size. You can't sell L/Red because you never made any. Generate the full grid, then click Remove next to the L/Red row. The remaining five variants stay intact; visitors picking L/Red on the public page get "This combination is not available."

What NOT to use this for

  • Do not use variable products for a single-variant offering. If your product has exactly one price and one SKU, use a simple product instead. Variable products add complexity for no benefit when there's nothing to pick.
  • Do not use attributes for free-text customization. If a customer needs to type their name on a pillow or upload a photo, an attribute dropdown is the wrong shape. Use a form field on the product page (or pair the product with a form).
  • Do not create more than three attributes for one product. Two attributes (Size × Color) already produces a 6-row variant grid for a 3 × 2 product. A third attribute (Size × Color × Material) produces 12 rows for a 3 × 2 × 2 product. The grid gets unwieldy fast. Consider splitting into separate products.
  • Do not rely on attribute deletion to remove variants. Deleting an attribute value (for example removing Size / XL) leaves any variants using that value broken on the public page. Always use the Remove button on the specific variant row first, then remove attribute values.

How this connects to other features

  • Attributes — the attributes you attach here (Size, Color) come from Products → Attributes. Each attribute has a display type (Dropdown, Buttons, Color Swatches, Image Swatches) that controls how it renders on the public product page.
  • Products list — variable products show a price range on the Products list ($25.00 - $29.00) rather than a single price. The range is the lowest to highest variant regular price.
  • Categories — variable products belong to categories the same way simple products do. Pick from the Categories card in the sidebar.
  • Media Library — the main Thumbnail is shared across all variants. If you need per-variant images (for example a separate photo for the Black vs White color), contact your store operator — that's a configuration beyond the standard picker.
  • Your store's public page — the variant picker on /product/<slug> is automatic once you publish. Size renders as a dropdown (or buttons, depending on the attribute's display type). Color renders as swatches if you set Color's display type to Color Swatches.

Before you start

  • You are signed in to SGEN as an admin.
  • You've set your store currency under Ecommerce → Configuration.
  • Each attribute you want to use (Size, Color, Material, and so on) is already created under Products → Attributes with the right display type. See Manage attributes.
  • Each attribute has its values (S/M/L for Size; Black/White for Color) configured — see the same Attributes doc.
  • You have your product photo uploaded to the Media Library.
  • You have the per-variant prices, SKUs, and stock counts ready in a list or spreadsheet.

Where to go

  1. Open the left navigation.
  2. Click Store Management → Products → Add New.
  3. The Add New Product form loads.

Steps — Base product

1. Fill the shared product fields

Start the same way you would for a simple product — write the Title, Slug, and Description; attach the main Thumbnail; pick Categories; write the SEO Title and Meta Description. Everything in this first pass applies to the product as a whole, regardless of variant.

2. Pick the type

In the Product data panel header, change the type selector from Simple to Variable. The General tab changes to show a notice reading Pricing is managed per variation — regular and sale price fields disappear at the product level.

Steps — Attributes tab

Click Attributes in the Product data tab row.

3. Add your first attribute

Click Add existing (or the similar button in the Attributes panel). A picker lists every attribute you've created globally. Pick Size. It appears as a row in the Attributes list.

4. Pick the values for this product

Each attribute row shows a values editor. Pick the specific sizes this product comes in — Small, Medium, Large. If your product only comes in a subset of sizes, pick only that subset.

5. Tick "Used for variations"

Next to the values editor, tick Used for variations. This tells the variant generator that Size is an axis of variation for this product. Attributes without this ticked become descriptive-only — they display on the public page but don't create variant combinations.

6. Add your second attribute

Click Add existing again. Pick Color. Pick its values (Black, White). Tick Used for variations.

Repeat for any further attribute you want — keep it to at most 2–3 variation attributes.

7. Save attributes

Click Save attributes at the bottom of the Attributes panel. A confirmation message appears; the Variations tab is now ready to populate.

Steps — Variations tab

Click Variations in the Product data tab row.

8. Generate the variant grid

Click Generate variations. The grid populates with one row per combination of selected attribute values — S/Black, S/White, M/Black, M/White, L/Black, L/White. For a 3 × 2 product that's 6 rows; for a 4 × 3 product it's 12.

9. Fill each variant's details

Each row has fields:

  • SKU — the per-variant stock-keeping code. Use a pattern like <product-sku>-<size>-<color> so you can scan it: SGEN-TSHIRT-S-BLACK.
  • Regular price ($) — the variant's price. Type with up to two decimals — 24.99, 26.99, 28.99.
  • Sale price ($) — optional discount for this variant. Must be less than regular.
  • Stock — per-variant inventory count.

If every variant shares the same price, you can type it into the first row and then use your browser's copy-paste to fill the rest — or use the Bulk actions dropdown at the top of the grid to set a price or stock across all rows at once.

10. Remove variants that aren't offered

If one combination isn't available (you never made L/Red), click Remove at the end of that row. The row deletes; the remaining variants stay intact.

Steps — Save and verify

11. Click Update Product

Scroll up to the sidebar. Click Update Product. The form submits; the page reloads with a success confirmation. A note appears in the right-sidebar Logs panel.

12. Open the public product page

Open /product/<your-slug> in a new tab. Confirm:

  • Your product photo, title, and description are there.
  • A Size dropdown (or Size buttons) appears.
  • A Color dropdown (or Color swatches, if you set Color's display type to Color Swatches) appears.
  • The base price shows a range — for example $24.99 &ndash; $28.99.
  • Picking Small / Black updates the price to $24.99 and the SKU to SGEN-TSHIRT-S-BLACK. Picking Large / White updates to $28.99.
  • The Add to Cart button is enabled only when both Size and Color are picked.

What success looks like

  • The Products list shows your variable product with a price range in the Price column ($24.99 &ndash; $28.99 for a T-Shirt with variants from $24.99 to $28.99).
  • The product's edit page shows the Variations tab with one row per combination, each holding its own SKU, price, and stock.
  • On the public product page, picking a combination of Size + Color updates the displayed price and makes Add to Cart clickable.
  • On the Cart page after adding a specific variant, the line item shows the variant's attributes (e.g. "Size: Medium, Color: Black") and the variant's price.
  • On the category archive page (for example /product_category/apparel), the product card shows the price range and a single thumbnail.

What to do if it does not work

  • Generate variations didn't create any rows. Confirm at least one attribute has Used for variations ticked, and each attribute has at least one value selected. Click Save attributes first; then return to the Variations tab and click Generate variations.
  • My Size attribute shows as a plain dropdown on the public site but I want colored buttons. The attribute's display type controls the rendering. Go to Products → Attributes, edit Size, change Display Type to Buttons or Labels, save. Reload the product page.
  • My Color swatches don't show the correct colors. Each Color value has its own color hex. Go to Products → Attributes, click Color's items link, and set the hex color for each value (for example #000000 for Black, #FFFFFF for White).
  • A variant's price won't save. Sale price must be strictly less than Regular price for that variant. Clear Sale to save Regular alone.
  • I set the Regular price on a variant to $24.99 and it displays as $24.99 on the variant page. That's correct behavior for variable products — variant-level prices preserve decimals.
  • The product saved but the variant picker isn't appearing on the public page. Confirm at least one attribute has Used for variations ticked and at least one variant exists in the Variations tab. Save and reload.
  • I can't add a new Size value from this form. Attribute values (the specific sizes or colors) are managed at Products → Attributes. Add S/M/L there first, then come back and attach Size to this product.

Next step

On this page