Ce matin, plusieurs clients nous ont contacté avec le même problème : leur back-office PrestaShop était inaccessible. Un écran d'erreur XML bloquait tout. Si vous êtes dans cette situation, la solution est rapide.

Ce qui se passe

En vous connectant à votre back-office PrestaShop, vous tombez sur ce type de message :

Il y a plusieurs erreurs.
1. Erreur : StartTag: invalid element name dans le fichier country_module_list.xml.
2. Erreur : Extra content at the end of the document dans le fichier country_module_list.xml.
3. Erreur : StartTag: invalid element name dans le fichier must_have_module_list.xml.
4. Erreur : Extra content at the end of the document dans le fichier must_have_module_list.xml.

Le front-office continue de tourner normalement, seul le back-office est bloqué. Le problème touche les versions PrestaShop 1.7.6.x.

Pourquoi ça arrive

PrestaShop contacte régulièrement les serveurs Addons (addons.prestashop.com) pour récupérer des listes de modules recommandés. Ces réponses sont stockées en local dans des fichiers XML sous config/xml/.

Le souci : quand les serveurs Addons sont en maintenance, ils renvoient une page HTML au lieu du XML attendu. PrestaShop écrase les fichiers locaux avec ce contenu invalide, puis tente de les parser au chargement du back-office. Le XML est corrompu, le parser plante, le back-office devient inaccessible.

Comment corriger

Restaurer les fichiers XML corrompus

Connectez-vous en SSH à votre serveur. Trois fichiers sont concernés dans config/xml/ : default_country_modules_list.xml, modules_native_addons.xml et must_have_modules_list.xml. Il faut remplacer leur contenu par du XML valide mais vide, en attendant que les serveurs Addons reviennent en ligne :

cd /chemin/vers/votre/prestashop
echo '<?xml version="1.0" encoding="UTF-8"?><modules></modules>' > config/xml/default_country_modules_list.xml
echo '<?xml version="1.0" encoding="UTF-8"?><modules></modules>' > config/xml/modules_native_addons.xml
echo '<?xml version="1.0" encoding="UTF-8"?><modules></modules>' > config/xml/must_have_modules_list.xml

Si vous n'avez que du FTP, ouvrez ces trois fichiers et remplacez leur contenu par :

<?xml version="1.0" encoding="UTF-8"?>
<modules></modules>

Désactiver la vérification Addons

Tant que les serveurs Addons sont instables, il faut empêcher PrestaShop de les contacter. Dans classes/Tools.php, trouvez :

protected static $is_addons_up = true;

Et passez la valeur à false :

protected static $is_addons_up = false;

Vider le cache

rm -rf var/cache/*

Sur les anciennes versions :

rm -rf cache/smarty/compile/*
rm -rf cache/smarty/cache/*

Reconnectez-vous au back-office, tout devrait fonctionner.

Après la maintenance Addons

Une fois la plateforme Addons revenue à la normale, remettez la variable à true dans classes/Tools.php :

protected static $is_addons_up = true;

Les fichiers XML se régénéreront correctement. Cette variable ne contrôle que les suggestions de modules dans le back-office — la passer à false n'a aucun impact sur votre boutique ni sur vos modules installés.

Ce genre de problème revient à chaque maintenance Addons. Maintenant vous savez quoi faire.

Articles reliés

Retrouvez ci-dessous quelques articles qui pourraient vous intéresser.

16
mar
Créer un serveur MySQL de réplication (slave) des données existantes

Créer un serveur MySQL de réplication (slave) des données existantes

MySQL Master-Slave Replication est une procédure permettant de répliquer en temps réel les données d'un serveur MySQL vers un autre. Nous allons voir
Lire la suite
21
jui
Octa : structure de thème WordPress ultra-moderne pour un développement rapide

Octa : structure de thème WordPress ultra-moderne pour un développement rapide

Octa est une structure de thème (starter theme) WordPress conçue pour les développeurs avancés en quête d’un workflow moderne. Présenté comme un thème WordPress « puissant » basé sur Laravel, Bedrock et Sage, Octa combine les outils du stack Roots (Bedrock, Sage 11, Acorn…) pour fournir un socle de développement complet.
Lire la suite