Skip to main content

Categories & Navigation

The storefront uses two separate systems for organizing content: Sales Categories for product taxonomy and Navigation Menus for site navigation.

Sales Categories

Sales categories are the storefront-facing browsing taxonomy. Use them for building category pages, breadcrumbs, and filters.

Get Category Tree

GET /api/storefront/categories
X-Store-Code: us-store
X-Language-Code: en

Returns a hierarchical tree of sales categories with two subtypes:

  • Taxonomy — hierarchical product categories (e.g., Shop All → Tops, Bottoms)
  • Promotional — cross-cutting collections (e.g., New Arrivals, Sale)

Get Category by ID or Slug

GET /api/storefront/categories/{idOrSlug}
X-Store-Code: us-store
X-Language-Code: en

Accepts a GUID or slug (e.g., s-tops). Returns the category with its children.

Category → Products Flow

Navigation menus are flexible, editable structures for building site headers, footers, and sidebars. Unlike categories, menus can link to any URL, category, product, or page.

Get Navigation Menu

GET /api/storefront/navigation/{menuId}
X-Store-Code: us-store
X-Language-Code: en

Response:

{
"id": "guid",
"name": "Main Menu",
"items": [
{
"id": "guid",
"label": "Shop",
"type": "category",
"targetId": "category-guid",
"url": null,
"children": [
{ "id": "guid", "label": "Tops", "type": "category", "targetId": "guid" },
{ "id": "guid", "label": "Bottoms", "type": "category", "targetId": "guid" }
]
},
{
"id": "guid",
"label": "New Arrivals",
"type": "category",
"targetId": "new-arrivals-guid",
"children": []
},
{
"id": "guid",
"label": "About Us",
"type": "url",
"url": "/about",
"children": []
}
]
}
TypeDescriptionHow to handle
categoryLinks to a sales categoryNavigate to /c/{slug} or category page
productLinks to a productNavigate to /product/{slug}
pageLinks to a CMS pageNavigate to /page/{slug}
urlLinks to any URLNavigate to the URL directly

Building a Header

tip

Navigation menus are managed in the Backoffice. The menu structure is flexible — items can be nested to any depth and link to different entity types. Build your navigation component to handle this recursively.