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

# Products

> Individual menu items — what customers add to their order.

A **product** is a sellable item on the menu: a burger, a combo, a drink, a side. It carries **price**, **description**, **modifier groups** (choices the customer must or can make), and **availability** per store.

## What commercial teams should know

| Topic            | In practice                                                                                 |
| ---------------- | ------------------------------------------------------------------------------------------- |
| Pricing          | List price, tax, quantity limits, anchor pricing, and modifier configuration per context    |
| Bundled items    | Products included in combos or bundles, with refund rules when the customer removes an item |
| Modifier groups  | Structured choices (drink, side, size) shape the offer and average ticket                   |
| Availability     | When an item is 86’d in the POS, it should disappear everywhere customers order             |
| Imagery and copy | Owned channels show your assets; aggregators may have their own layout rules                |

Products are the level where **merchandising meets operations**. Marketing promotes specific items; the kitchen must receive exactly what was configured.

## Modifier groups and modifiers

Customization on a product is organized in **modifier groups**. Each group asks the customer a question; each answer inside the group is a **modifier**.

| Concept            | What it is                                                                                          | Example                                          |
| ------------------ | --------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
| **Modifier group** | A set of related choices on one product — often with rules (required, pick one, pick many, min/max) | “Choose your drink”, “Add extras”, “Select size” |
| **Modifier**       | One selectable option inside that group                                                             | Coca-Cola, Sprite, bottled water                 |

A group is the **frame** (“what drink do you want?”). Modifiers are the **options** the customer picks.

### Modifiers can be their own products

In many menus, each modifier is not just a label — it points to a **real product** in your catalog. The combo does not embed a fake “Coke” string; it offers the same **Coca-Cola product** you sell standalone, with its own SKU, price delta, and kitchen mapping.

```
Combo Meal (product)
└── Modifier group: "Choose a drink" (required · pick 1)
    ├── Coca-Cola (modifier → drink product)
    ├── Sprite (modifier → drink product)
    └── Still water (modifier → drink product)
```

That pattern matters commercially and operationally:

* **Combos and bundles** — Base item + customer picks drink, side, or dessert from real catalog items.
* **Upsell** — “Add bacon” or “Make it large” as optional groups with priced modifiers.
* **Kitchen accuracy** — The ticket names the actual product the line cooks or pours, not an informal note.
* **Inventory and 86** — If still water is out of stock in the POS, that modifier disappears from the group across channels.

Groups can be **required** (customer must choose a drink) or **optional** (add extra cheese). Rules like “pick exactly one” vs “pick up to three toppings” live on the group, not on each modifier.

Fire spark syncs products, modifier groups, and modifiers from your operation. The same structure can appear in different composed menus by channel, store, fulfillment, or schedule — without duplicate masters in the POS.

## Pricing and bundles

Each product carries a **pricing** object per channel, store, and fulfillment context:

| Field                                      | Meaning                                                                       |
| ------------------------------------------ | ----------------------------------------------------------------------------- |
| `price`                                    | List price customers see                                                      |
| `is_tax_inclusive` / `tax_rate`            | Whether tax is included and at what rate                                      |
| `minimum_quantity` / `maximum_quantity`    | Order limits for this item                                                    |
| `anchor_price` / `anchor_price_percentage` | Reference price and discount for merchandising                                |
| `modifier_group_ids`                       | Modifier groups attached to this product                                      |
| `modifiers`                                | Per-modifier pricing overrides (default quantity, display type, charge rules) |

**Bundled items** model combos: each entry references a real catalog product with an `included_quantity` and a `refund_price` if the customer starts a dispute about the bundle.

## Related concepts

<CardGroup cols={2}>
  <Card title="Categories" icon="list" href="/docs/concepts/categories">
    Where products appear in the menu
  </Card>

  <Card title="Menus" icon="utensils" href="/docs/concepts/menus">
    Full catalog synced to channels
  </Card>

  <Card title="Orders" icon="receipt" href="/docs/concepts/orders">
    Products and modifier choices in a purchase
  </Card>
</CardGroup>
