Pages & CMS
The CMS (Content Management System) allows you to create and manage dynamic pages composed of content blocks. Pages are delivered as structured JSON to the storefront, which renders them using its own components.
Managing Pages
Navigate to Content → Pages.
Creating a Page
- Click New Page
- Enter a title and slug (URL-friendly identifier)
- Add content blocks to the page
- Arrange blocks by drag-and-drop
- Save and publish
Page Fields
| Field | Description |
|---|---|
| Title | Page title (shown in browser tab, SEO) |
| Slug | URL path (e.g., home, about-us) |
| Status | Draft or Published |
| Store | Which store(s) this page belongs to |
Content Blocks
Each page is composed of ordered content blocks. Each block has a component type and a data payload.
Available Block Types
| Type | Description | Data Fields |
|---|---|---|
hero-banner | Full-width hero section | title, subtitle, imageUrl, buttonText, buttonLink |
product-grid | Product cards grid | categoryId, maxItems, columns |
text-block | Rich text content | content (HTML) |
image-gallery | Image carousel | images array |
category-grid | Category cards | categoryIds, columns |
custom-html | Raw HTML | html |
Editing Blocks
- Click a block to expand its editor
- Fill in the type-specific fields
- Use the rich text editor for text blocks
- Drag blocks to reorder
- Delete blocks with the remove button
Page Versions
Pages support versioning. Each save creates a new version. You can:
- View version history
- Compare versions
- Revert to a previous version
Headless Rendering
The storefront fetches page content via:
GET /api/storefront/pages/{slug}
The response is structured JSON — the storefront is responsible for rendering each block type with the appropriate UI component. This gives complete freedom over the visual design.
The CMS is intentionally headless. The Backoffice defines the content structure; the storefront controls the presentation. This means the same content can be rendered differently on web vs. mobile.