PrestaShop 1.6 et 1.7 : Erreur XML dans le panneau d'administration must_have_modules_list.xml, modules_native_addons.xml - cause et solution

PrestaShop 1.6 / 1.7 – Erreurs XML dans le panneau d'administration – Cause et solution

Fichiers concernés : must_have_modules_list.xml, modules_native_addons.xml

Récemment, des erreurs liées aux fichiers XML ont commencé à apparaître dans le panneau d'administration des boutiques PrestaShop 1.6 et 1.7, par exemple :

Error found : Start tag expected, '<' not found in must_have_modules_list.xml file
Error found : Start tag expected, '<' not found in default_country_modules_list.xml file
Error found : Start tag expected, '<' not found in modules_native_addons.xml file

Le problème provient de la communication entre le panneau d'administration et l'API PrestaShop Addons et, dans la plupart des cas, n'affecte pas le fonctionnement de la boutique côté clients, mais peut causer des problèmes dans le panneau d'administration.

D'où proviennent ces fichiers XML ?

Le problème provient de la communication entre le panneau d'administration et l'API PrestaShop Addons et, dans la plupart des cas, n'affecte pas le fonctionnement de la boutique côté clients, mais peut causer des problèmes dans le panneau d'administration.

PrestaShop récupère régulièrement les listes de modules depuis l'API Addons et les enregistre localement dans le répertoire :

config/xml/

Fichiers les plus importants

## must_have_modules_list.xml
Lista polecanych modułów z marketplace PrestaShop.

## default_country_modules_list.xml
Lista modułów sugerowanych dla danego kraju.

## modules_native_addons.xml
Lista modułów natywnych dostępnych w PrestaShop Addons.

Ces fichiers sont principalement utilisés dans le panneau d'administration, dans la section Modules → Gestionnaire de modules.

PrestaShop les utilise pour :

  • afficher les modules recommandés
  • marquer les modules comme « incontournables »
  • s'intégrer à la marketplace Addons
  • présenter les modules natifs

Documentation :
https://devdocs.prestashop-project.org/8/modules/

Pourquoi cette erreur apparaît-elle ?

Les anciennes versions de PrestaShop s'attendent à ce que l'API Addons renvoie des données au format XML.
Actuellement, il arrive que les points de terminaison de l'API :

  • soient temporairement indisponibles
  • renvoient des erreurs
  • renvoient une réponse dans un autre format (par exemple JSON)
  • renvoient une réponse incomplète

Exemple de requête :

https://api.addons.prestashop.com/?version=1.6.1.24&method=listing&action=must-have

Si la réponse n'est pas au format XML valide, le parseur PrestaShop (`simplexml_load_string`) signale une erreur :

Start tag expected, '<' not found

Documentation du parseur XML PHP :
https://www.php.net/manual/en/...

Quels sont les symptômes du problème ?

Outre les messages XML dans le panneau d'administration, le problème peut également entraîner :

  • l'absence de résultats dans le moteur de recherche
  • des problèmes de filtrage des modules
  • des listes de modules incomplètes
  • un chargement plus lent de la page Modules
  • des erreurs lors de la navigation sur la marketplace Addons

Le problème concerne uniquement la section de gestion des modules. Il n'affecte pas les commandes, les produits, les clients, les paiements, le panier ni l'interface client de la boutique.

Solution rapide

La solution la plus simple consiste à remplacer le contenu des fichiers problématiques par un XML minimal et correct. Accédez via SSH ou FTP à :

config/xml/

et remplacez le contenu des fichiers par les valeurs indiquées sous le nom du fichier :

## must_have_modules_list.xml:

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

## default_country_modules_list.xml:

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

## modules_native_addons.xml:

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

À l'avenir – comment empêcher le réécriture des fichiers

Le simple remplacement du XML résout généralement le problème immédiatement, mais il faut garder à l'esprit que PrestaShop pourrait à l'avenir tenter à nouveau de télécharger et de mettre à jour ces fichiers. Vous disposez de deux approches pratiques.

Option 1 – bloquer l'écriture dans les fichiers

Vous pouvez définir les droits d'accès des fichiers en lecture seule. C'est une solution simple et rapide, mais elle repose toujours sur le fait que PrestaShop tentera d'effectuer la mise à jour, mais ne pourra pas écraser les fichiers. Effectuez cette opération via SSH ou manuellement dans un client FTP :

chmod 444 config/xml/must_have_modules_list.xml
chmod 444 config/xml/default_country_modules_list.xml
chmod 444 config/xml/modules_native_addons.xml

Option 2 – redéfinir la classe Tools

Une solution plus élégante consiste à désactiver la vérification de l'API Addons en redéfinissant la classe Tools.

Fichier :

override/classes/Tools.php

Exemple de redéfinition :

php
class Tools extends ToolsCore
{
protected static $is_addons_up = false;
}

Cela empêche PrestaShop :

  • ne tente pas de se connecter à l'API Addons
  • ne télécharge pas à nouveau ces fichiers XML
  • ne génère pas d'erreurs associées

Documentation sur l'override :
https://devdocs.prestashop-pro...

Après avoir ajouté la redéfinition, vous devez vider le cache - faites-le manuellement ou via SSH :

PS 1.7 :

rm -rf var/cache/*

PS 1.6 :

rm -rf cache/class_index.php

Que perdons-nous en désactivant l'API Addons ?

En pratique, la plupart des boutiques en ligne installent de toute façon les modules manuellement, donc la perte de cette fonctionnalité n'a généralement pas d'importance.

Ne fonctionnera pas :

  • la liste des modules recommandés
  • la marketplace dans le panneau de configuration
  • les suggestions de modules
  • les mentions « must have »
  • la consultation des Addons depuis l'administration

Toujours disponible :

  • l'installation des modules à partir d'un fichier ZIP
  • installation manuelle des modules
  • Mises à jour des modules
  • l'ensemble de la boutique
  • les commandes
  • paiement

Résumé

Le problème provient de la communication entre l'ancienne version de PrestaShop et l'API Addons. Les faits essentiels :

  • il ne s'agit pas d'un problème de serveur
  • ce n'est pas un problème de configuration de la boutique
  • il ne s'agit pas d'un malware
  • cela n'affecte pas les ventes
  • cela concerne uniquement le panneau des modules

La meilleure solution :

  1. Remplacer le fichier XML
  2. Désactiver l'API Addons

Recommandation

Si la boutique fonctionne de manière stable, vous pouvez appliquer cette solution de contournement en toute sécurité. Si la boutique fonctionne toujours sous PrestaShop 1.6 ou l'ancienne version 1.7, il est également conseillé d'envisager :

  • une mise à jour vers une version plus récente
  • un audit technique
  • mettre à jour les modules
  • l'optimisation des performances

Dans chacun des cas ci-dessus, n'hésitez pas à nous contacter, nous sommes là pour vous aider ! :-)

Comments (0)
de 0