Brekz CMS¶
Brekz CMS is an internal application built on Laravel with two core functionalities:
- It serves as the content management system (CMS) for the
brekz-prestashopstorefront (also referred to as the Brekz website), combined with Laravel Nova as the admin panel. - It provides product data management for specific tools integrated into the website. For full PIM (Product Information Management) functionality, Brekz uses Ergonode as the dedicated PIM platform.
Purpose¶
The purpose of this application is to simplify and accelerate website content management for both customers and internal users. It supports automated content imports and editing flows, significantly reducing the time required for repetitive tasks that are otherwise time-consuming within PrestaShop.
Dependencies¶
Key dependencies of this application are defined in the composer.json. The main packages to be aware of are:
- Laravel Nova – Used for admin panel and CRUD management.
- Statamic CMS – Powers the content editing experience and serves content to the frontend in a headless configuration.
Functionalities¶
Brekz CMS provides the following key features:
- Homepage banner management – Add, remove, or edit promotional banners displayed on the homepage.
- Mega menu configuration – Control the structure and items of the mega menu on the
brekz-prestashopstorefront. -
CSV import tools – Import and manage bulk data for:
-
MQC (Multi Quantity Configuration)
- Specific Prices / Discounts
- Product price updates
- Category information management – Edit and enrich product category data.
CSV Import Workflow¶
Step-by-step process
The CSV import system is designed to make bulk content and product data changes efficient and safe. The process involves the following steps: 1. **CSV Upload** The user uploads a CSV file based on a provided example/template to ensure correct structure and formatting. 2. **Validation Step** Upon clicking the **Validate** button: * A dry-run SQL transaction is initiated. * The system checks for field-level errors using a built-in validation mechanism. * The transaction is rolled back regardless of outcome, ensuring no data is committed during validation. 3. **Import Execution** Once validated, the user can execute the actual import: * The validated data is committed to the database. * A visual log is shown to the user. * Statistics are displayed including: * Total rows processed * Number of successful imports * Number of rows with errorsMermaidJS Flowchart
flowchart TD
A[User uploads CSV] --> B[Click 'Validate']
B --> C{Run SQL transaction}
C -->|Validation success| D[Rollback transaction]
C -->|Validation error| E[Show field-level validation errors]
D --> F[User confirms import]
F --> G[Commit to database]
G --> H[Display import log + statistics]
Feature Dependencies¶
Upstream Dependencies¶
-
brekz-prestashop Provides:
-
Website content integration
- Product data synchronization
- Frontend rendering based on CMS inputs
Environments¶
The brekz-cms repository runs two parallel git tracks due to the ongoing Templating migration: the non-templating track (serving PrestaShop) and the templating track (serving Brekz Website). Each track has its own test, acceptance, and production environment.
| Tier | Git branch | Domain |
|---|---|---|
| Production | master |
cms.brekz.nl |
| Acceptance | acceptance |
brekz-cms.fstaging.nl |
| Test | development |
brekz-cms.ftest.nl |
| Tier | Git branch | Domain |
|---|---|---|
| Production | master-templating |
cms-templating.brekz.nl |
| Acceptance | acceptance-templating |
brekz-cms-pim.fstaging.nl |
| Test | development |
brekz-cms-pim.ftest.nl (not yet available) |
Shared development branch
Both tracks share the development branch for their test tier. Changes pushed to development are deployed to both brekz-cms.ftest.nl (non-templating) and brekz-cms-pim.ftest.nl (templating, once provisioned).
Release branches¶
Staged branches pending merge to master (non-templating track):
| Git branch | Description |
|---|---|
release/2.5.0-no-update |
Next release — without Laravel update |
release/2.5.0 |
Next release — with Laravel update |
Active feature branches¶
| Git branch | ClickUp | Description |
|---|---|---|
feature/BR-7244-Brekz-CMS-Upgrade-naar-Statamic-6 |
BR-7244 | Statamic v5 → v6 upgrade |
feature/BR-7250-Statamic-Templating-V1-Feedback |
BR-7250 | Templating V1 feedback (23 sub-tasks) |
feature/BR-7463-Prestashop-CMS-import |
BR-7463 | PrestaShop CMS page import (Artisan command) |
Hosting provisioning¶
Nginx vhost configurations are managed in the flooris-hosting-provisioning repository.
Path: webhosting/brekz-new/environments/{tier}/vhost_nginx_{tier}/
| Config file | Tier | Track |
|---|---|---|
vhost-brekz-cms.ftest.nl.yml |
Test | Non-templating |
vhost-brekz-cms-pim.ftest.nl.yml |
Test | Templating |
vhost-brekz-cms.fstaging.nl.yml |
Acceptance | Non-templating |
vhost-brekz-cms-pim.fstaging.nl.yml |
Acceptance | Templating |
vhost-cms.brekz.nl.yml |
Production | Non-templating |
vhost-cms-templating.brekz.nl.yml |
Production | Templating |
worker-brekz-cms.ftest.nl.yml |
Test | Worker (both tracks) |
Lifecycle¶
Both production environments run concurrently during the Templating A/B test. Once 100% of traffic is routed to cms-templating.brekz.nl, the non-templating track (cms.brekz.nl and its acceptance environment) will be phased out (targeted: end of 2026).
Legacy environments
pim.brekz.nl (PHP 7.4 / Laravel 8) is deprecated with an end-of-life of 20 July 2026, after which it will only serve static assets for email campaigns. pim-deprecated.brekz.nl (active since 20 April 2026) replaces the pim.brekz.nl label once that domain is officially retired.
Roadmap¶
The roadmap below outlines the four-step migration plan for Brekz CMS: the Supersale QoL release (step 1), three parallel tracks covering go-live usage, content clean-up, and the git major rebase (step 2), conversion of PrestaShop pages to the Templating structure (step 3), and the feature branch rebase (step 4).
Architecture¶
For a full overview of how brekz-cms and brekz-website work together (Blade directives, page warmer, Statamic content repository), see the CMS & Website Rendering Architecture.