> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qwoty.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Product configurator

> Reference for building configurable products with option groups, rules, and formulas.

## Overview

The product configurator turns a single catalog product into a product with options. You attach a configuration to a base product, then add ordered **groups** that let the sales rep or the customer choose products, answer questions, or see calculated values.

As selections are made, rules show, hide, require, or exclude elements in real time, and formulas recalculate price, quantity, and any calculated fields. The result is a validated set of line items added to the quote.

<Tip>
  Use the product configurator when a product has many interdependent options. For a fixed set of products sold together at one price, use a [Bundle](/user-guide/catalog/reference/catalog-vs-pricebook-vs-bundle) instead.
</Tip>

## How it works

A configuration is always attached to one base product. You add **groups** to it in order, and each group contains either selectable options or a calculated value. Some groups can stay hidden until a rule reveals them.

<Frame>
  ```mermaid theme={null}
  flowchart TD
  A[Base product] --> B{Has variants?}
  B -->|Yes| C[Variant selection step]
  B -->|No| D[Group A]
  C --> D
  D --> E[Group B]
  E --> F[Group C, D, E...]
  F --> G[Rules evaluate in real time]
  G --> H[Price and quantity recalculate]
  H --> I[Validate and add to quote]
  ```
</Frame>

If the base product has variants, the sales rep selects a variant before seeing any group. From there, groups appear in the order you defined (A, B, C, and so on). Each time a selection changes, only the rules and formulas in groups **below** the one that changed are re-evaluated.

## The 3 group types

Add a group from the **Configuration** panel by clicking **+ Add**, then choosing one of three types.

| Group type     | Purpose                                                                                                                        | Generates a quote line                   |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------- |
| **Item**       | The sales rep or customer chooses one or more catalog products or custom attributes.                                           | Yes                                      |
| **Question**   | The sales rep or customer answers a question. The answer can drive rules and formulas, and can optionally be saved to a field. | No                                       |
| **Calculated** | Shows one or more values computed automatically from a formula. No options to select.                                          | No, unless the value is saved to a field |

An Item or Question group lets you pick a **selection type**: Radio buttons, Checkboxes, Dropdown, Multi-select, Cards (single choice), or Cards (multiple choice). Question groups add three more: Toggle, Number input, Free text, and Date.

A Calculated group can hold more than one formula. Each formula has its own name, display format, and visibility, so one group can show several related values (for example, a chassis weight and a total weight).

## Option types

Inside an **Item** group, each option is one of:

* **Catalog product** — linked to an existing product. Its price can inherit from the pricebook.
* **Custom attribute** — a choice with no underlying catalog product (for example, "Standard finish" with no separate line item value). It has its own name, image, and description, and cannot use the pricebook-inherited price.

Inside a **Question** group, each option is a possible answer with a name and a value, plus an optional image for card-style display.

Every catalog product or custom attribute option configures its own price and quantity:

| Setting      | Modes                                           |
| ------------ | ----------------------------------------------- |
| **Price**    | Inherited from pricebook, Formula, Fixed amount |
| **Quantity** | Same as base product, Formula, Fixed amount     |

A formula-based price or quantity can be a flat value (`350`) or an expression that references other parts of the configuration (`[Price] * 0.35`). Each option can also be marked editable by the sales rep, and its price details can be hidden from the quote.

## Rules

A rule follows the pattern **IF \[condition] → THEN \[action]**, with an optional **ELSE** action. Rules attach to a group or to an individual option, and they evaluate in real time as selections change.

<Note>
  A rule can only reference groups that come **before** it in the order. A rule on group D can use groups A, B, and C, but never E or later.
</Note>

### Actions

| Action                                     | Available on groups | Available on options          |
| ------------------------------------------ | ------------------- | ----------------------------- |
| **Show**                                   | Yes                 | Yes                           |
| **Hide**                                   | Yes                 | Yes                           |
| **Required**                               | No                  | Yes (Item group options only) |
| **Exclude**                                | No                  | Yes (Item group options only) |
| **Alert** (Warning banner or Error banner) | Yes                 | No                            |

### Examples

| Rule                                                                      | Effect                                                                    |
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| IF **Power supply** is `480V` THEN Show **Transformer**                   | The transformer group only appears for 480V installations.                |
| IF **Environment** is `Outdoor` THEN Required **Stainless steel chassis** | Stainless steel is forced for outdoor installations.                      |
| IF **Chassis** is `Carbon` THEN Exclude **Engraving**                     | Engraving is grayed out when carbon is chosen, since it isn't compatible. |

### Conflict resolution

When two rules target the same element with conflicting actions:

* **Hide** wins over **Show**.
* **Required** wins over **Exclude**.

## Formulas

A formula is an expression that produces a number. The formula editor offers three contexts:

| Context        | Used for                            | Result                                                                    |
| -------------- | ----------------------------------- | ------------------------------------------------------------------------- |
| **Unit price** | An option's price                   | A currency amount                                                         |
| **Quantity**   | An option's quantity                | A whole number                                                            |
| **Calculated** | A value shown in a Calculated group | A number, currency amount, or percentage, depending on the display format |

### Variables

Click **INSERT VARIABLE** in the formula editor to insert a variable without typing it manually.

| Source              | Variables                                                                                           |
| ------------------- | --------------------------------------------------------------------------------------------------- |
| **Base product**    | Price, Quantity                                                                                     |
| **Option group**    | Value (the current selection), Total (price × quantity for the whole group), Price, Quantity, Count |
| **Specific option** | Selection, Total, Price                                                                             |

### Functions

| Function                                       | Description                                         |
| ---------------------------------------------- | --------------------------------------------------- |
| `IF(condition, value if true, value if false)` | Returns one of two values depending on a condition. |
| `AND(a, b, ...)`                               | True only if every condition is true.               |
| `OR(a, b, ...)`                                | True if at least one condition is true.             |
| `ROUND(value, decimals)`                       | Rounds a number to a given number of decimals.      |

There's no separate "sum" function. To total the prices or quantities across an option group, insert that group's **Total** variable.

### Examples

| Formula                                                       | Result                                                           |
| ------------------------------------------------------------- | ---------------------------------------------------------------- |
| `350`                                                         | A flat surcharge of 350.                                         |
| `[Price] * 0.35`                                              | 35% of the base product's price.                                 |
| `IF([Selection] = "Premium chassis", [Price] * 0.9, [Price])` | A 10% discount when the premium chassis is selected.             |
| `ROUND([Total] + [Total], 1)`                                 | The combined total of two option groups, rounded to one decimal. |

## DealRoom behavior

When a configured product reaches the DealRoom, your customer sees the same groups and selections as the sales rep, with a few differences:

* Sales tips are hidden — they're for your team only.
* Calculated values marked as hidden stay hidden.
* An option marked optional can be added or removed by the customer.
* An option marked preselected starts checked, but the customer can uncheck it if it's also optional.
* An option with an editable quantity lets the customer adjust it within the configured minimum and maximum.

If none of these settings apply to an option, the customer sees it as read-only.

## When to use Configurator vs Bundle

|                   | Product configurator                                                                | Bundle                                                        |
| ----------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| Best for          | Products with many interdependent options, conditional logic, and calculated values | A fixed or lightly customizable set of products sold together |
| Pricing           | Per-option, often formula-driven                                                    | Usually a package price with simple add-ons                   |
| Conditional rules | Yes — show, hide, require, exclude, alert                                           | No                                                            |
| Calculated fields | Yes                                                                                 | No                                                            |
| Setup effort      | Higher — suited to complex, configurable products                                   | Lower — suited to simple groupings                            |

## Common questions

<AccordionGroup>
  <Accordion title="Can a rule reference a group that appears later in the configuration?">
    No. Rules and formulas can only reference groups that come before them in the order. If you need the opposite relationship, move the referenced group earlier.
  </Accordion>

  <Accordion title="What happens if two rules disagree on the same option?">
    Hide always wins over Show, and Required always wins over Exclude.
  </Accordion>

  <Accordion title="Does a Question group always create a quote line?">
    No. Question groups never create a quote line on their own. They collect an answer that can drive rules and formulas, and can optionally be saved to a field.
  </Accordion>

  <Accordion title="Can a Calculated group show more than one value?">
    Yes. A Calculated group can hold multiple formulas, each with its own name, display format, and visibility.
  </Accordion>

  <Accordion title="Can I hide a calculated value from the sales rep?">
    Yes. Turn off the calculated field's display setting to use it only as an internal variable for other formulas, without showing it on the configuration screen.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Build a product configuration" icon="list-check" href="/user-guide/catalog/how-tos/product-configurator">
    Step-by-step guide to creating a configuration from scratch.
  </Card>

  <Card title="Bundle" icon="boxes-stacked" href="/user-guide/catalog/reference/catalog-vs-pricebook-vs-bundle">
    Group a fixed set of products under one price.
  </Card>

  <Card title="Pricebook" icon="tags" href="/user-guide/catalog/reference/catalog-vs-pricebook-vs-bundle">
    Manage the prices that configured products can inherit from.
  </Card>

  <Card title="DealRoom" icon="globe" href="/user-guide/dealroom/reference/what-is-dealroom">
    See how customers interact with a configured product online.
  </Card>
</CardGroup>
