Magento multi boutiques et maintenance

Magento permet très facilement de mettre sa boutique en maintenance, via le dépôt d'un fichier maintenance.flag à la racine du projet. Dans le cas d'un projet multi boutiques, toutes les boutiques seront impactées par cette maintenance. Ce point peut être contrariant dans certains cas.

Nous allons voir ici une astuce permettant de cibler uniquement une boutique.

L'objectif est de conserver la simplicité de maintenance par un simple dépôt de fichier. Pour cette astuce, le pré-requis est la configuration multi boutiques au niveau vhost, via la variable MAGE_RUN_CODE.

Modification du fichier index.php

La première étape consiste à modifier le fichier index.php pour gérer ce nouveau cas.



<?php
/*
[...]
*/
$maintenanceFile 'maintenance.flag';
// Maintenance par boutique, ajout de la nouvelle définition de fichier
if (isset($_SERVER['MAGE_RUN_CODE'])) {
    
$maintenanceRunCodeFile 'maintenance.' $_SERVER['MAGE_RUN_CODE'] . '.flag';
}
/*
[...]
*/
// Gestion de la maintenance pour toutes les boutiques
if (file_exists($maintenanceFile)) {
    include_once 
dirname(__FILE__) . '/errors/503.php';
    exit;
}

// Gestion de la maintenance par boutique
if (isset($maintenanceRunCodeFile) && file_exists($maintenanceRunCodeFile)) {
    include_once 
dirname(__FILE__) . '/errors/503.php';
    exit;
}

/*
[...]
*/



Si la variable MAGE_RUN_CODE est définie, le programme regarde si un fichier de type maintenance.MAGE_RUN_CODE.flag. Le cas échéant, la boutique concernée sera mise en maintenance.

Quant à la maintenance classique, son fonctionnement n'est pas altéré.

Exemple

Un e-commerçant possède deux boutiques (boutique_une et boutique_deux), gérées par un seul Magento. Suite à une refonte graphique importante de sa boutique_deux, il souhaiterait la mettre en maintenance le temps de la migration. A la racine de son site, il lui suffira de poser un fichier nommé maintenance.boutique_deux.flag . Il pourra ainsi procéder à sa mise à jour sans que sa boutique_une ne soit en maintenance.

Si un e-commerçant a, par exemple, cinq boutiques, il pourra mettre plusieurs boutiques en maintenance en utilisant plusieurs fichiers maintenance.MAGE_RUN_CODE.flag

Si vous avez des questions ou des remarques, n'hésitez pas à en faire part dans les commentaires.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.