> ## 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.

# Categories

> How products are grouped so customers can browse your menu.

**Categories** organize a menu into sections customers understand — appetizers, burgers, drinks, desserts, combos. They shape **how the offer feels**, not just what is technically for sale.

## Commercial role

| Aspect        | Why it matters                                                                                                |
| ------------- | ------------------------------------------------------------------------------------------------------------- |
| Browse flow   | Good grouping increases basket size and reduces friction                                                      |
| Merchandising | Highlights, seasonal blocks, and promos often sit in named sections                                           |
| Channel UX    | Aggregators and your app may present categories differently; structure follows your composed menu per context |
| Testing       | Category order and naming are common levers in menu experiments                                               |

Categories sync from your POS or RMS with the rest of the menu. Renaming or reordering in the operational system flows to channels through Fire spark.

## Categories vs products

* **Category** — The shelf (for example “Salads”).
* **Product** — What goes on the shelf (for example “Caesar salad”).

A product usually belongs to one or more categories depending on how your operation models the catalog.

## Availability by context

Categories carry a `channels` map. Each channel entry lists stores, and each store lists fulfillment types with an `availability` object:

| Field            | Meaning                                                                                                                                                                                |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `status`         | `ACTIVE`, `INACTIVE`, or `HIDDEN` for that channel/store/fulfillment combination                                                                                                       |
| `schedules`      | Full-week schedule (`monday`–`sunday`) with `periods` (`start_time` / `end_time`, optional `closed`, optional `start_date` / `end_date`). `null` when there is no schedule restriction |
| `inactive_until` | Optional end time for a temporary inactive state                                                                                                                                       |
| `items`          | Ordered entries in this category for that channel/store/fulfillment combination. Each item has `type` (`CATEGORY` or `PRODUCT`) and `id`. Use `CATEGORY` to nest another category.     |

This lets you hide a category on one aggregator while keeping it visible on your owned app, or schedule seasonal sections without duplicating category records in your POS.

## Related concepts

<CardGroup cols={2}>
  <Card title="Menus" icon="utensils" href="/docs/concepts/menus">
    Full catalog customers see
  </Card>

  <Card title="Products" icon="drumstick" href="/docs/concepts/products">
    Items inside each category
  </Card>
</CardGroup>
