> For the complete documentation index, see [llms.txt](https://docs.flowretail.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flowretail.com/docs/day-to-day-operations/products/adding-products/configurable-products.md).

# Configurable products

Sell one product in several sizes or colours, using a master product and its variants.

A **configurable product** is a master product with variants underneath it — a t-shirt that exists in S, M, L and XL. The master is what you and the customer think of as "the product"; the variants are what actually carry stock, barcodes and sales.

## What you need first

Variants are defined by **properties**, so the properties have to exist before the product does.

|                        |                                                                                           |
| ---------------------- | ----------------------------------------------------------------------------------------- |
| Property type required | **Single Select** only                                                                    |
| Why                    | Each variant needs exactly one clear value per property, so it can be identified uniquely |
| Set up under           | Admin → Products → Properties                                                             |

Multiple Select and Text properties can be attached to a product for information, but they cannot define a variant. A shirt can be Size M or Size L — not both. See [Properties](/docs/day-to-day-operations/products/catalog-setup/properties.md).

## How it fits together

| Level   | Product type   | Carries                                                 |
| ------- | -------------- | ------------------------------------------------------- |
| Master  | `CONFIGURABLE` | The name, the description, the images, the property set |
| Variant | `STOCK`        | Its own SKU, barcode, stock and price                   |

Stock is held on the variant, never on the master. A master with four sizes is four stock records, and four rows in a stocktaking.

## What this means for you

* **Set up the properties before you start adding products.** Retrofitting variants onto products that already exist is considerably more work than getting the property in place first.
* **Keep option values consistent.** `Red` everywhere — not `red` on some products and `RED` on others. Inconsistent values fragment filtering and reporting, and there is no tidy way to merge them later.
* **Only create properties you will use.** Every property you define appears on the product form.

## Limitations

* Only Single Select properties can define variants.
* A variant needs a value for every property that defines the variant set; a missing value means the variant cannot be identified uniquely.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.flowretail.com/docs/day-to-day-operations/products/adding-products/configurable-products.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
