Intent-driven navigation
The dashboard sidebar is not a fixed menu. It is generated at render time from the merchant’s configured business intents and enabled behaviors, so two merchants on the same codebase see different navigation while sharing the same underlying routes.
Intents
A merchant declares one or more intents describing what they sell. Each intent
maps a set of shared module routes (catalog, orders, shipping, calendar,
resources, …) to intent-specific labels and icons:
| Intent key | Group label | catalog becomes | orders becomes | Extra items |
|---|---|---|---|---|
default / sell-products | Products | Product Catalog | Product Orders | Fulfillment |
digital-products | Digital Products | Digital Catalog | Download Orders | — |
event-tickets | Events | Event Listings | Ticket Orders | Check-ins, Attendees |
take-bookings | Bookings | Services | Appointments | Calendar, Scheduling, Resources |
rent-property | Rentals | Properties | Reservations | Availability Sync, Property Locations |
subscriptions | Subscriptions | Plans | Subscribers | — |
food-orders | Food Orders | Menu | Kitchen Orders | — |
So /dashboard/catalog is one route, but it appears as Product Catalog,
Services, Event Listings, Menu or Properties depending on the
merchant’s intent. A merchant with multiple intents gets multiple labelled groups,
each linking to the same routes with an intent key carried in the href.
Behavior gating
On top of intents, individual nav items are gated by behaviors. An item with a
requiredBehavior only appears if the merchant has at least one of those
behaviors enabled:
| Item | Required behavior |
|---|---|
| Shipping settings | shippable |
| Business locations | bookable or shippable |
| Locations (resources) | bookable or shippable |
Items with no requiredBehavior are always shown. Empty groups (all items gated
out) are dropped entirely, so the sidebar never renders a header with nothing
under it.
Behaviors are product-level capabilities (for example a product being
shippable, bookable, subscribable or digital). They drive both the
storefront and which dashboard tools are relevant — see the engine
behaviors and product modules.
Static groups
Alongside the intent-driven commerce groups, the sidebar always includes cross-cutting groups that don’t depend on intent — for example Analytics, Finance, Customers, Invoices, Reviews and Loyalty — plus a Settings group organized into sections:
| Settings section | Items |
|---|---|
| Overview | Business Profile, Profile |
| Brand & Site | Editor, Templates, Domains |
| Organization | Workspaces |
| Operations | Features, Email, Notifications, Shipping (gated), Billing, Locations (gated) |
| Compliance | Taxes, Policies |
The Features page (/dashboard/settings/features) is where a merchant toggles
the capabilities that, in turn, drive intents and behavior gating across the rest
of the dashboard.