Skip to content

Brekz CMS

Brekz CMS is an internal application built on Laravel with two core functionalities:

  1. It serves as the content management system (CMS) for the brekz-prestashop storefront (also referred to as the Brekz website), combined with Laravel Nova as the admin panel.
  2. 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-prestashop storefront.
  • 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 errors
MermaidJS 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).

Open roadmap in new tab


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.