> For the complete documentation index, see [llms.txt](https://docs.pakk.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pakk.io/websites/product-categorisation/product-variants.md).

# Product Variants

The way Pakk deals with product variants might be different from what you are used to.

The way Pakk deals with product variants might be different from what you are used to. Rather than setting up a “mother” or “master” product and having variants of it, in Pakk you just create a normal product for each variant.

> Let’s say you sell dustbins in various colours and sizes. You will create independent product records for each of the combinations of size and colour. So, for example “Green 240 Litre Bin” would be one product and “Red 360 Litre Bin” would be another, separate product.

### Motivation

Although this is a tutorial, not a history of Pakk development, let’s just make a short diversion to explore why Pakk implements variants in this way. In other e-commerce platforms, to create product variants you normally set up some sort of “master” product record and then try to specify the axes on which it can vary. There then might be more or less control over what you can do with the “variants”. But in Pakk, all variants are just normal products, so you can do whatever you need to with variants, including full control over attributes, pricing, stock levels and display and categorisation. Although you pay a small penalty in ease of maintenance, we believe the flexibility that this approach affords is more than worth it.

> So, if a product variant is just a product, at what point does it become a variant?  **The answer is at the point of display.**

Product variant groups are used in your websites to bring together products that you want to be displayed as co-variants - for example, sizes of shoes or colour of bins.


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.pakk.io/websites/product-categorisation/product-variants.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
