Docs
Architecture
Architecture
Overview of how Zermatt is structured and how it works.
Overview
- Zermatt aims at providing a modern frontend stack integrated into Adobe Commerce / Magento.
- Zermatt is not a theme. It is kind of a frontend framework that acts in your Magento themes.
- Zermatt allows step-by-step enhancement of the native Magento frontend...
- ... and helps removing Knockout / RequireJS at your pace.
Components
- A frontend stack located in the
web/zermattdirectory of your themes. Based on ViteJS and AlpineJS. - A Magento module installed via Composer:
Maddlen_Zermatt. In charge of handling integration of the frontend stack within Magento. Also contains the skeleton of the frontend stack to be deployed in your themes on install.
Communication
- The frontend stack generates a JS build.
- This build exposes a
Zermattglobal object to the frontend / JS. - This build is added to the
<head>of the layout. - The code in the
.phtmlfiles can use theZermattglobal object.
A JS object named Zermatt.Event allows pub/sub within Zermatt and with the Magento frontend stack.
In addition, Zermatt offers a way to pass backend data to the frontend thru the Zermatt.Variables JS object.
Data Management
- Data can be passed from the backend to the frontend by using Zermatt Variables.
- Data can be passed from the frontend to the backend via AJAX / POST.
- You may implement other data exchange (ie, with external DB / backend) in the frontend stack of your theme (
your_theme_path/web/zermatt).
Build
- The
Maddlen_ZermattMagento module is handled by native Magentosetup:di:compile - The frontend stack is integrated in
setup:static-content:deploy. With CI, or on the final server, or locally.