# Products with variants

> Sell one product in sizes or colors, each with its own code, price and stock. Also: services and combos.

*Section: Products and stock · Updated: 2026-10-19*

A product with variants is one product sold in versions, such as sizes or colors. By the end of this guide you will have made one, and you will know the other product types.

## When to use variants

Use a variable product when the versions share a name, category and unit, but each needs its own code and price. A T-shirt in Small, Medium and Large is one product with three variants. Each variant keeps its own stock.

## Create a product with variants

1. **Open [Products › Create product](/app/products/store).** Fill in the name, code and category as for any product.
2. **Set Type to Variable Product.** It is under **Inventory**. Choose the **Product Unit** too. **Product Cost** and **Retail Price** leave **Pricing And Tax**, because each variant gets its own.
3. **Add the variants.** In **Variants**, at the bottom of the page, type a name in **Enter the Variant**, such as 500 ml, and click **Create**. Repeat for each one.
4. **Fill in each variant.** Every variant needs a **Code**, a **Cost** and a **Retail Price**. **Wholesale Price**, **Min Selling Price** and an image are optional.
5. **Click Save Product.**

![Inventory with Type Variable Product, Product Unit Piece, Sale Unit Piece and Purchase Unit Piece.](https://armpos.online/storage/help/f0a11e4875-products-with-variants-1-type.webp)
*Variable Product moves the prices from Pricing And Tax to each variant.*

![Variants: Enter the Variant with Create, and two variants: 500 ml at cost 0.70 and retail price 1.20, and 1 L at 1.20 and 2.00, each with its code, image and a cross to remove it.](https://armpos.online/storage/help/535c080da7-products-with-variants-2-variants.webp)
*Give each variant its own code: that is what you scan at the till.*

> **Warning:** Variant codes must be unique across all your products and variants. A missing code, cost or price stops the save, and the message names it. A cost or price of 0 counts as missing.

## Stock for variants

The form has no **Opening Stock** for a variable product, so its variants start with none. To add stock, use [Products › Opening Stock](/app/products/opening_stock_import) and choose **Variant Products**. Its file takes product\_code, variant\_code and qty. A purchase or an adjustment adds stock too.

Many variants at once? [Products › Import products](/app/products/import) has a **Variant Products** template, one row per variant.

## The other product types

- **Standard Product**: one item with one price. Most products are this.
- **Service Product**: work you sell, such as a repair or a delivery fee. It has a price but no unit and no stock.
- **Combo Product**: a bundle of products you already have. In **Combo Products**, search for each one and set its quantity.

Choose the type when you create the product, under **Inventory**.

## What's next

[Print barcode labels](/app/help/print-barcode-labels) for your products.
