Maintenance Page
v2.0.14
Maintenance Page
- Mises à jour et support inclus pendant 12 mois
- Documentation complète incluse
- Compatible avec les thèmes Hyvä
- Installation prête pour Composer
Maintenance — Free Edition
Remplacez le 503.php par défaut de Magento par une vraie page CMS brandée pendant vos fenêtres de maintenance. L'édition gratuite est l'option sans fioritures : choisissez une CMS page, définissez un bypass secret ou whitelistez les IP de votre bureau, et vos clients voient une page propre au lieu d'un template d'erreur brut dès que vous activez la maintenance.
Le plugin s'accroche au flow catchException de Magento, donc il se déclenche exactement quand le bin/magento maintenance:enable natif aurait montré le 503 — pas de cron supplémentaire, pas de scheduling, pas de surprise. Un template fallback anglais embarqué couvre le cas où la CMS page configurée est manquante.
À qui ça s'adresse
- Marchands qui veulent une page de maintenance soignée sans payer pour l'édition Pro
- Stores qui planifient la maintenance manuellement via
bin/magento maintenance:enableet veulent un meilleur écran côté client - Agences préparant des deploys pour des clients qui tiennent à la cohérence de marque même en downtime
Bénéfices clés
- CMS page personnalisée — choisissez n'importe quelle CMS page dans l'admin ; le module la rend avec le frontend area code, donc les blocks et widgets fonctionnent.
- IP whitelist (exact match) — autorisez votre bureau, monitoring ou CI à bypasser la maintenance. Les ranges CIDR sont une feature Pro.
- Bypass secret URL — partagez un lien
?maintenance_bypass=YOUR_SECRETavec le staff et les testeurs externes. Stocké chiffré dans la config admin. - Toggle accès admin — gardez optionnellement l'admin panel accessible pendant la maintenance pour finir le travail.
- HTTP status configurable — renvoyez 503 (par défaut, correct pour le SEO), 200 ou 302 selon le cas d'usage. Header
Retry-Afterconfigurable. - Logging silencieux en production — les traces internes sont conditionnées par un toggle debug admin, pour que
system.logne soit pas spammé par les notices de deprecation PHP 8.2/8.3 attrapées défensivement par le plugin. - Licence MIT — installez-le sur autant de stores que vous voulez, modifiez le template librement.
Compatibilité
- Magento 2.4.x / équivalent Mage-OS
- PHP 8.1, 8.2, 8.3
- Nécessite
wimakeit/module-core3.0.9 ou supérieur - Template anglais embarqué — les templates multilingues, la maintenance schedulée, le pre-maintenance banner, le support Hyvä/Breeze et la whitelist CIDR sont dans
wimakeit/module-maintenance-pro
Installez ce module via Composer. Assurez-vous que votre auth.json est configuré avec vos identifiants Wimakeit.
$ composer require wimakeit/module-maintenance:^2.0.14
$ bin/magento setup:upgrade
$ bin/magento setup:di:compile
Installation notes
The standard composer require + setup:upgrade + setup:di:compile flow applies. The points below cover what's specific to this module.
Required dependency
This module requires wimakeit/module-core 3.0.9 or later. Composer will pull it automatically from the Wimakeit registry as long as the registry is declared in your project's composer.json.
ACL permissions
After installation, one ACL resource is registered under System → Permissions → User Roles:
| Resource | Default |
|---|---|
Wimakeit_Maintenance::config (edit module configuration) | granted to Administrator role only |
Default CMS page
A CMS page with identifier site-under-maintenance is created automatically by the install patch (chosen to avoid url_rewrite collisions with existing categories/products named "maintenance"). You can:
1. Edit it in Content → Pages to customize the look 2. Create your own CMS page and select it in the admin config 3. Leave it empty and let the built-in English fallback template render
Configuration
The module ships disabled (opt-in). Go to Stores → Configuration → Wimakeit → Maintenance.
General settings
| Setting | Default |
|---|---|
| Enable Custom Maintenance Page | No (opt-in) |
| CMS Page | site-under-maintenance |
| Use Fallback Template | Yes |
| HTTP Status Code | 503 |
| Retry-After (seconds) | 3600 |
| Allowed IPs | (empty — exact match only; CIDR in Pro) |
| Bypass Secret Key | (empty; min 8 characters recommended, stored encrypted) |
| Apply to Admin Panel | No (admin remains accessible) |
| Enable Debug Logging | No — leave off in production |
Usage
# Enable maintenance (native Magento command)
bin/magento maintenance:enable
# Enable with IP whitelist on the fly
bin/magento maintenance:enable --ip=192.168.1.100 --ip=10.0.0.1
# Disable
bin/magento maintenance:disable
# Status + troubleshooting (Wimakeit-specific)
bin/magento wimakeit:maintenance:status
Bypass during maintenance
Add your bypass secret to any URL:
https://yourstore.com/?maintenance_bypass=YOUR_SECRET_KEY
The check is timing-attack safe.
Custom template
Override the default template by creating one in your theme:
app/design/frontend/<Vendor>/<theme>/Wimakeit_Maintenance/templates/maintenance/content/en.phtml
app/design/frontend/<Vendor>/<theme>/Wimakeit_Maintenance/templates/maintenance/styles/default.phtml
- Version
- v2.0.14
- Licence
- Licence perpétuelle
- Support
- 12 mois
- Dernière mise à jour
- 5 juin 2026
- Magento
- Magento 2.4.4 Magento 2.4.5 Magento 2.4.6 Magento 2.4.7 Mage-OS 2.0 Mage-OS 2.1
- PHP
- PHP 8.1 PHP 8.2 PHP 8.3
- Hyvä
- Compatible
- Package
-
wimakeit/module-maintenance
Vérifier la compatibilité
Indiquez votre stack pour vérifier la compatibilité du module.
Compatibilité 4
Tarification & licence 4
bin/magento module:disable ; le nettoyage est automatique via le revert du setup patch. vendor/wimakeit/ après composer require, donc vous pouvez le lire, l'auditer, et le patcher localement pour votre propre installation Magento. Vous ne pouvez PAS le redistribuer, le sous-licencier, le publier sur un registre Composer public, ou le revendre. 1 licence = 1 domaine production + 1 domaine staging/dev (voir les Conditions Générales pour l'EULA complet). Les modules Wimakeit ne sont PAS sur le packagist.org public — ils sont distribués exclusivement via le registre Composer privé packages.wimakeit.be. Installation & mises à jour 6
composer require wimakeit/module-maintenance:^2.0.12, puis bin/magento setup:upgrade, bin/magento setup:di:compile, et enfin bin/magento cache:flush. L'onglet « Installation » de cette page liste chaque étape de configuration (ACLs, crons, valeurs par défaut) — un déploiement prend quelques minutes, pas des heures. Besoin d'aide ? Wimakeit propose des prestations d'installation Magento depuis notre bureau wallon (Presles, entre Charleroi et Namur). auth.json : {"http-basic": {"packages.wimakeit.be": {"username": "VOTRE-EMAIL", "password": "VOTRE-TOKEN"}}}. Étape 3 : enregistrez le repo : composer config repositories.wimakeit composer https://packages.wimakeit.be. Étape 4 : composer require wimakeit/module-maintenance:^2.0.12. Dans les pipelines CI/CD, injectez COMPOSER_AUTH en variable d'environnement JSON pour éviter de commiter auth.json. composer require, même code module, même schéma de base — pas de fork à maintenir, pas de changement de licence. composer update reste sûr à l'intérieur d'une version majeure. app/design/frontend/{VotreVendor}/{theme}/Wimakeit_{Module}/templates/ en respectant le même chemin relatif. Blocks, ViewModels et Helpers s'override via DI preference dans votre propre module custom — déclarez <preference for="Wimakeit\…\OriginalClass" type="VotreVendor\Override\Class" /> dans etc/di.xml. Le XML layout s'étend (préféré) ou s'override de manière standard Magento. Les modules Wimakeit n'utilisent jamais le keyword final sur les classes que vous pourriez raisonnablement vouloir override — surcharger est un scénario de premier ordre, pas un hack. Support & sécurité 3
contact@wimakeit.com avec le nom du module, sa version, votre version Magento/Mage-OS et les étapes pour reproduire. Les correctifs sont livrés dans le prochain patch. Le support Wimakeit répond en français, anglais et néerlandais en jours ouvrables (horaires CET). contact@wimakeit.com avec le préfixe [SECURITY] dans l'objet — précisez le module, la version et les étapes de reproduction. Accusé de réception en jours ouvrables, mention dans le Changelog sur souhait du déclarant. Wimakeit est une SRL belge (société à responsabilité limitée) soumise au droit belge et européen sur la vie privée et la divulgation responsable. À propos de Wimakeit 1
Quelque chose n'est pas couvert par la FAQ ?
Signalez un bug ou posez une question — le formulaire est pré-rempli avec ce module.
Changelog
Categories: Security, Feature, Fix, Perf, Admin, Deps.
[2.0.12] - 2026-05-26
Fix
- Default CMS page identifier changed from
maintenancetosite-under-maintenanceto avoid url_rewrite collisions with categories/products commonly named "maintenance". - Install patch now checks for existing url_rewrite entries before saving; on conflict it logs a warning and skips gracefully instead of crashing
setup:upgradewith a duplicate-URL-key error.
Admin
- Existing installs keep their previous CMS page; only fresh installs get the new safer default identifier.
[2.0.10] - 2026-05-26
Fix
- CMS page creation patch reduced to the essential fields, removing legacy attributes that could cause
setup:upgradeto fail on stores with stricter EAV validators.
[2.0.9] - 2026-05-10
Admin
- Debug logging now routes through a shared
Wimakeit\Maintenance\Logger\DebugLoggervirtualType — cleaner code, no behavior change. The toggle pathwimakeit_maintenance/general/debug_modeis unchanged. - The defensive
\Throwablecatch in HttpPlugin no longer writescriticallines for upstream PHP deprecation notices; demoted towarningand gated behind the debug toggle.
Deps
- Requires
wimakeit/module-core3.0.9+ for the shared debug logger and inheritedgetConfigSection()helper.
[2.0.8] - 2026-05-10
Feature
- New Enable Debug Logging admin toggle (General → Settings, default off). Keeps
var/log/system.logquiet in production by gating internal info/debug/warning traces.
Fix
- HttpPlugin no longer writes a CRITICAL line on every backend error path. PHP 8.2/8.3 dynamic-property deprecations in
pub/errors/processor.php, caught defensively byaroundCatchException, are now gated behind the debug toggle. Hard errors that block functionality are still logged.
[2.0.2] - 2026-03-04
Admin
- Breaking: Removed redundant
wimakeit:maintenance:enableandwimakeit:maintenance:disableCLI commands. Use nativebin/magento maintenance:enable/:disable. Diagnostics live inwimakeit:maintenance:status. - Default
enabledchanged from1to0(opt-in). The module must now be explicitly enabled in admin config before it intercepts requests.
[2.0.1] - 2026-03-04
Feature
- New
wimakeit:maintenance:statusCLI command for status output and troubleshooting tips.
Fix
- Plugin interception point moved from
launchtocatchExceptionto correctly handle the maintenance exception thrown by Magento's Bootstrap. - Frontend area code is now set before rendering CMS content (fixes "area code not set" errors).
- HttpResponse singleton pollution fixed via a factory pattern.
- Added Cache-Control headers to prevent caching of the maintenance response.
[2.0.0] - 2026-03-03
Feature
- Freemium split: free edition keeps the essentials, Pro edition adds scheduled maintenance, pre-maintenance banner, Hyvä/Breeze themes, multilingual templates, CIDR whitelist and license management.
- License changed from proprietary to MIT for the free edition.
Admin
- IP whitelist now supports exact match only (CIDR moved to
wimakeit/module-maintenance-pro). - Single English template (multilingual templates moved to Pro).
- Default Luma styling only (Hyvä/Breeze moved to Pro).
[1.1.0] - 2026-03-03
Feature
- Scheduled maintenance with start/end date-time.
- Pre-maintenance warning banner on the frontend.
- Admin preview button to render the maintenance page without enabling maintenance.
- New cron job
wimakeit_maintenance_schedule_checkrunning every minute.
[1.0.0] - 2026-03-03
Feature
- Initial release.
- Custom CMS page rendered during maintenance instead of
503.php. - Admin configuration panel at Stores → Configuration → Wimakeit → Maintenance.
- IP whitelist with CIDR notation (IPv4 and IPv6).
- Bypass secret URL parameter (timing-attack safe).
- Configurable HTTP status codes (503, 200, 500, 502, 504) and
Retry-Afterheader. - CLI commands
wimakeit:maintenance:enable/:disable. - Multilingual CMS pages per store view.
- Theme-specific styling for Luma, Hyvä and Breeze.
Vous avez trouvé un bug ? Faites-nous-en part.
Un court formulaire s'ouvre dans un nouvel onglet — le nom du module et votre langue sont déjà pré-remplis. Décrivez ce que vous avez tenté, ce qui n'a pas fonctionné, et nous vous répondrons sous un jour ouvré.
Signaler un bug pour Maintenance PageBesoin d'aide ?
Notre équipe est disponible pour vous accompagner dans l'intégration.