Skip to content

Fields & actions

ControlPermissionAction
Importcategories.createOpens the CSV/Excel category import wizard
Add Categorycategories.createOpens create dialog for a new root category

Summary rail (KPI cards)

MetricMeaning
TotalAll product categories for the tenant
Activeis_active = true — visible to catalog
Inactiveis_active = false — hidden
RootTop-level categories with no parent
StorefrontCategories with at least one storefront mapping

Toolbar

ControlAction
SearchFilters by name, description, or mapped storefront label; keeps parent branches visible when descendants match
All / Active / InactiveStatus segment filter on the tree
Expand / CollapseOpens or closes every branch in the tree
RefreshClears cache and refetches categories, storefront categories, mappings, and product counts

Tree columns

ColumnContent
CategoryFolder icon (parent) or package icon (leaf), name, expand chevron
ProductsCount of products assigned to this category, or — when zero
StorefrontMapped menu labels (up to two badges + “+N”), or Not mapped
StatusGreen/gray dot with Active or Inactive label
ActionsAdd subcategory, Edit, and More (⋮) menu

Row actions

ActionPermissionResult
+ (Add subcategory)categories.createOpens create dialog with parent fixed
Pencil (Edit)categories.editOpens edit dialog
⋮ → Add subcategorycategories.createSame as +
⋮ → Renamecategories.editOpens edit dialog
⋮ → Duplicatecategories.editCreates a copy with storefront mappings
⋮ → Activate / Deactivatecategories.editToggles is_active inline
⋮ → Deletecategories.deleteOpens delete confirmation with impact check
ElementMeaning
Showing X of YVisible rows vs total categories
Clear filtersAppears when search or status filter is active

Category form fields

FieldRequiredNotes
Category nameYesTrimmed on save
Taxonomy parentNoHidden when adding a child from a row; null = root
DescriptionNoOptional text
ActiveNoDefaults to on
Storefront category mappingsNoMany-to-many via checkboxes; search filters the list

Import wizard fields

Mapped columnPurpose
level_1 … level_4Hierarchy by column (up to four levels)
name + parent_nameSingle category with optional parent
pathFull breadcrumb path separated by >, /, or |
descriptionOptional per leaf row
is_activeOptional; accepts true/false, yes/no, active/inactive

Delete rules

ConditionBehaviour
Child categories existDelete blocked — dialog lists count
Products reference category_idDelete blocked — dialog lists count
NeitherDelete allowed

Auto-generated fields

FieldSet by
slugDatabase trigger on insert/update — shown read-only when editing
tenant_idCurrent tenant context