# Categories

Categories live under **Catalog** → **Categories**. They organize products into a tree up to 3 levels deep, and everything happens on one page: a create/edit form card sits above a table of all categories, ordered as a tree (child names are indented under their parent). There are no separate category detail pages. Assigning products to categories happens on each product's detail page; see [Managing products](/docs/products/index).

## Create a category

1. Fill in the **New category** form at the top of the page. Only **Name** is required; the **Create category** button stays disabled until it is filled.
2. Click **Create category**.

| Field | Description |
| --- | --- |
| Name | Required. The category's display name. |
| Slug | Optional. Leave it blank (placeholder "auto") and it is generated for you. |
| Parent category | **No parent (root)** or an existing category. The hint reminds you: "Categories form a tree up to 3 levels deep." |
| Description | Optional free text. |
| Position | A number controlling ordering among siblings. Defaults to 0. |
| Active | Whether the category is live. Checked by default. |

## Edit a category

1. Click **Edit** on the category's row. The row loads into the form and its title changes to **Edit category**.
2. Change the fields and click **Save changes**, or click **Cancel** to reset the form.

When editing, the **Parent category** dropdown excludes the category itself and all of its descendants, so you cannot create a cycle.

## Delete a category

Click **Delete** on the row. The confirmation reads: 'Delete "{name}"? Products stay, the category assignment is removed.' Deleting a category never deletes products; they just lose that category assignment.

You cannot delete a category that still has children: the attempt fails with "Has children: {names}". Delete or move the children first.

## Bulk actions

Select categories with the row checkboxes. As soon as any are selected, bulk buttons appear in the header:

- **Activate** and **Deactivate** flip the status of all selected categories.
- **Delete** removes them after its own confirmation dialog.

If some rows cannot be processed (for example a category with children in a bulk delete), the result reports "{count} skipped: {reason}" and the rest go through.

## The category table

| Column | Description |
| --- | --- |
| Name | The category name, indented by its depth in the tree. |
| Slug | The category's slug. Changing the address sends visitors from the old one to the new one. |
| Products | How many products are assigned to the category. |
| Status | `active` or `inactive` badge. |
| Actions | **Edit** and **Delete** buttons. |

With no categories the table shows "No categories yet." If no business is selected, the page shows **Select a business first.**

Storefronts read the category tree through the API; see the [categories API reference](/api/catalog/categories).
