PrestaShop 1.6 et 1.7 – erreur XML dans le panneau admin (must_have_modules_list.xml, modules_native_addons.xml)

Le gestionnaire de modules dans PrestaShop affiche une erreur XML ? Nous expliquons ci-dessous pourquoi cela se produit et comment le résoudre efficacement, sans avoir besoin de mettre à jour la boutique ou d'intervenir dans la base de données.

Quels sont les fichiers XML dans le répertoire config/xml/ ?
PrestaShop stocke localement plusieurs fichiers XML qui sont responsables du fonctionnement de la section Modules > Gestionnaire de modules dans le panneau d'administration. Ils sont téléchargés cycliquement à partir d'une API externe PrestaShop Addons et enregistrées dans le répertoire :

config/xml/
Les plus importants d'entre eux sont :

  • liste_modules_indispensables.xml – liste des modules marqués comme „ incontournables ” par PrestaShop
  • modules_native_addons.xml – liste des modules natifs disponibles dans les modules complémentaires
  • default_country_modules_list.xml – modules suggérés pour un pays spécifique
  • liste_modules_fiables.xml – liste des modules de confiance vérifiés par PrestaShop
Ces fichiers n'ont aucun impact sur le frontend de la boutique ni sur le traitement des commandes. Ils servent uniquement à afficher des informations dans la section des modules du panneau d'administration.

Une erreur XML se présente comme un message indiquant un problème dans la structure ou la syntaxe d'un fichier XML. Elle peut apparaître à différents endroits : * **Dans le navigateur web :** Si vous essayez d'ouvrir un fichier XML directement dans un navigateur et qu'il contient des erreurs, le navigateur affichera généralement un message d'erreur clair, indiquant la ligne et la colonne où le problème a été détecté. * **Dans un éditeur XML ou un IDE :** Lorsque vous travaillez sur un fichier XML avec un outil dédié (comme Notepad++, VS Code avec un plugin XML, Oxygen XML Editor, etc.), l'éditeur peut surligner les erreurs, ajouter des icônes d'avertissement ou afficher des messages d'erreur dans un panneau dédié. * **Lors du traitement par une application :** Si une application tente de lire, d'analyser ou de traiter un fichier XML qui contient des erreurs, elle échouera et produira généralement une exception ou un message d'erreur décrivant la nature du problème XML. * **Dans les logs d'erreurs :** Les erreurs liées à l'analyse XML sont souvent enregistrées dans les fichiers journaux (logs) d'une application ou d'un serveur web pour être examinées ultérieurement. Les erreurs XML courantes incluent : * **Balises non fermées :** Une balise d'ouverture (ex: ``) n'a pas sa balise de fermeture correspondante (ex: ``). * **Balises imbriquées incorrectement :** Les balises ne sont pas correctement hiérarchisées. Par exemple, `` est incorrect. * **Caractères spéciaux non échappés :** Les caractères comme ``, `&`, `'`, `"` doivent être remplacés par leurs entités XML (`<`, `>`, `&`, `'`, `"`) lorsqu'ils apparaissent dans du contenu texte, sauf s'ils font partie des balises elles-mêmes. * **Attributs mal formés :** Les attributs doivent toujours être entourés de guillemets doubles ou simples (ex: `attribut="valeur"`). * **Problèmes d'encodage :** L'encodage déclaré dans le fichier XML (ex: ``) ne correspond pas à l'encodage réel du fichier. * **Non-respect de la structure définie par un DTD ou un schéma (XSD) :** Si le fichier XML est censé suivre une structure spécifique (schéma), une erreur peut survenir si cette structure n'est pas respectée.
L'erreur apparaît le plus souvent directement dans le panneau d'administration – dans l'onglet Modules après être entré dans Gestionnaire de modules. Les communications peuvent se présenter comme suit :

Erreur trouvée : balise de début attendue, '<' non trouvé dans le fichier must_have_modules_list.xml
Erreur trouvée : balise de début attendue, '<' non trouvé dans le fichier modules_native_addons.xml
Erreur trouvée : balise de début attendue, '<' non trouvé dans le fichier default_country_modules_list.xml
Note
Ces erreurs apparaissent dans PrestaShop 1.7 et PrestaShop 8.x. Dans les versions antérieures 1.6, le mécanisme fonctionne de manière similaire, bien que l'emplacement de certains fichiers puisse varier.

D'où vient cette erreur ?
PrestaShop envoie des requêtes HTTP à l'API PrestaShop Addons pour récupérer les listes de modules actuelles. Un point de terminaison d'exemple ressemble à ceci :

https://api.addons.prestashop.com/?version=1.7.8.x&method=listing&action=must-have
Le magasin attend une réponse au format XML. Le problème survient quand :
  • Les modules complémentaires d'API renvoient une réponse dans un format différent (par exemple, JSON ou une page d'erreur HTML)
  • La connexion à l'API est bloquée par un pare-feu ou une configuration du serveur
  • le serveur de la boutique n'a pas accès aux ressources externes (pas de trafic sortant HTTP/HTTPS)
  • Les modules complémentaires de l'API sont temporairement indisponibles ou renvoient un délai d'attente dépassé
  • La version de PrestaShop est trop ancienne et n'est plus prise en charge par l'API.
Analyseur PHP simplexml_load_string() lors de la tentative de traitement d'une mauvaise réponse, elle signale justement cette erreur – Balise de début attendue.


Est-ce que le bug affecte le fonctionnement de la boutique ?
Succès
Le frontend du magasin, le panier, les commandes, les paiements et tous les processus d'achat fonctionnent normalement. L'erreur ne concerne que le panneau d'administration – spécifiquement la section de gestion des modules.
Qu'est-ce qui peut cesser de fonctionner dans le panneau :
  • liste des modules recommandés
  • section „ à avoir ” dans le gestionnaire de modules
  • Compléments de marché accessibles depuis l'administrateur
  • Suggestion de modules pour le pays
  • chargement plus lent de la page Modules (délai de connexion à l'API observé)

Étape 1 – Vérification du contenu des fichiers XML
Avant d'apporter des modifications, il est conseillé de vérifier ce qui se trouve actuellement dans les fichiers. Par SSH nous faisons :

cat config/xml/must_have_modules_list.xml
Si le fichier est vide, contient du HTML (par exemple, une page d'erreur 503) ou du JSON au lieu d'XML, c'est la source du problème.

Conseil
Pour vérifier le contenu du fichier, vous pouvez également utiliser le gestionnaire de fichiers du panneau d'hébergement (par exemple, Hestia CP, cPanel) ou un client FTP – aucun accès SSH n'est requis.

Étape 2 – Remplacement des fichiers par le XML correct
La solution la plus rapide consiste à remplacer le contenu des fichiers problématiques par un XML minimal et correct. Via SSH, nous exécutons :

echo '' > config/xml/must_have_modules_list.xml
echo '' > config/xml/modules_native_addons.xml
echo '' > config/xml/default_country_modules_list.xml
echo '' > config/xml/trusted_modules_list.xml
Vous pouvez également télécharger des fichiers manuellement via FTP. Chacun d'eux devrait ressembler à ceci :

Avertissement
Seul le remplacement des fichiers résoudra temporairement le problème. PrestaShop, lors du prochain rafraîchissement de la page des modules, essaiera à nouveau de récupérer les données de l'API et pourra écraser les fichiers avec une réponse erronée.

Étape 3 – solution permanente par surcharge de classe
Pour bloquer définitivement les tentatives de téléchargement de XML depuis l'API des modules, nous créons un override de classe Outils. Nous créons un fichier :

override/classes/Tools.php
Sur le contenu suivant :

<?php
class Tools extends ToolsCore
{
    protected static $is_addons_up = false;
}
Propriété $is_addons_up = faux cela PrestaShop à ne pas essayer de se connecter à l'API Addons – et par conséquent, à ne pas télécharger ni écraser les fichiers XML.

Après avoir créé le fichier de remplacement, nous vidons le cache. Pour PrestaShop 1.7 / 8.x:

rm -rf var/cache/dev/*
rm -rf var/cache/prod/*
Vous pouvez également vider le cache depuis le panneau d'administration : Avancé > Performance > Vider le cache.

Info
Après avoir appliqué l'override, la section des modules continue de fonctionner pleinement : il est possible d'installer, désinstaller et mettre à jour des modules depuis un fichier ZIP. Seule l'intégration avec la marketplace Addons dans le panneau d'administration est désactivée.

Alternative – blocage d'écriture dans des fichiers
Si nous ne voulons pas utiliser de surcharge, il est possible de définir les fichiers XML en lecture seule. PrestaShop ne pourra ainsi pas les écraser :

chmod 444 config/xml/must_have_modules_list.xml
chmod 444 config/xml/modules_native_addons.xml
chmod 444 config/xml/default_country_modules_list.xml
chmod 444 config/xml/trusted_modules_list.xml
Note
La méthode avec chmod est plus simple, mais elle n'élimine pas les tentatives de connexion à l'API – PrestaShop continuera à les exécuter, ce qui peut ralentir le chargement de la page des modules. Le override de la classe Tools est une solution techniquement plus propre.

Qu'est-ce que nous ne perdons pas après avoir désactivé l'API des modules complémentaires ?
Il est bon de savoir que dans un environnement de production, la plupart de ces fonctionnalités ne sont de toute façon pas utilisées au quotidien :

FonctionAprès la désactivation de l'API
Frontend du magasinÇa fonctionne sans changement
Commandes et panierÇa fonctionne sans changement
Installation des modules depuis ZIPÇa fonctionne sans changement
Mises à jour de modulesÇa fonctionne sans changement
Modules de marketplace dans l'administrationIndisponible
Modules incontournables„Indisponible
Suggestion de modules pour le paysIndisponible

Quand le bug peut-il revenir ?
Si nous appliquons uniquement la substitution de fichiers sans remplacement ou chmod, l'erreur peut réapparaître après :

  • rafraîchissement de la page du Gestionnaire de modules
  • lancement de cron PrestaShop
  • Mise à jour de PrestaShop
  • nettoyage du cache
C'est pourquoi nous recommandons de combiner les deux étapes – le remplacement des fichiers i anuler la classe ou le verrou d'écriture.

Résumé
L'erreur XML dans le back-office de PrestaShop est un problème de communication entre une ancienne version de la boutique et l'API Addons – ce n'est pas une défaillance du serveur, un problème de base de données ou la présence de logiciels malveillants. La boutique fonctionne normalement. La solution est rapide et ne nécessite pas de mise à jour de PrestaShop.

Étapes recommandées :

  1. Vérifier le contenu des fichiers config/xml/
  2. Remplacement de fichiers par un XML minimal valide
  3. Ajouter le remplacement de classe Outils z $is_addons_up = faux
  4. Nettoyer le cache PrestaShop
Si vous avez besoin d'aide pour la mise en œuvre des changements ci-dessus ou si vous souhaitez profiter de l'occasion pour effectuer un audit technique de votre boutique — nous serons heureux de vous aider.

Contactez nous

Laissez votre commentaire

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

Produits récemment consultés

PrestaShop Flux Google Merchant XML 1.0.0

(1)
52,08  TVA comprise

PrestaShop Google Tag Manager (GTM, GA4, ADS)

(2)
52,08  TVA comprise

[GRATUIT] PrestaShop PayNow 1.7.13

(0)
0,00  TVA comprise

Connexion

Panier d'achat

Fermer

Votre panier est vide.

Commencer les courses

Barre latérale