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.

25
sep
Simple Conditional Fields for Contact Form 7 : enfin une solution visuelle pour les formulaires dynamiques

Simple Conditional Fields for Contact Form 7 : enfin une solution visuelle pour les formulaires dynamiques

Découvrez Simple Conditional Fields, l'extension WordPress qui révolutionne Contact Form 7 avec une interface 100% visuelle pour créer des formulaires intelligents. Fini les syntaxes complexes : configurez vos champs conditionnels en quelques clics grâce à une approche moderne et intuitive.
Lire la suite
15
sep
Animation Typewriter pour Placeholder : Donnez Vie à Vos Champs de Recherche

Animation Typewriter pour Placeholder : Donnez Vie à Vos Champs de Recherche

Les interfaces utilisateur modernes se distinguent par leurs micro-interactions subtiles, mais efficaces. Aujourd'hui, nous allons créer une animation de placeholder qui simule une machine à écrire, transformant un simple champ de recherche en une expérience engageante pour vos utilisateurs.
Lire la suite
inRage - Pascal GAULT
© 2008-2021 - inRage SARL. Tous droits réservés.
Code open-source inrage.fr disponible sur Code open-source disponible sur Github
Demandez un devis
SIRET : 813 430 592 00010
R.C.S : La Rochelle 813 430 592

10-14 rue Jean Perrin,
17000 LA ROCHELLE