PrestaShop 1.6 / 1.7 – Errores XML en el panel de administración – Causa y solución
Archivos problemáticos: must_have_modules_list.xml, modules_native_addons.xml
Recientemente, en las tiendas PrestaShop 1.6 y 1.7 han comenzado a aparecer errores en el panel de administración relacionados con archivos XML, por ejemplo:
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
El problema se debe a la comunicación del panel de administración con la API de PrestaShop Addons y, en la mayoría de los casos, no afecta al funcionamiento de la tienda desde el punto de vista de los clientes, pero puede causar problemas en el panel de administración.
¿De dónde proceden estos archivos XML?
El problema se debe a la comunicación del panel de administración con la API de PrestaShop Addons y, en la mayoría de los casos, no afecta al funcionamiento de la tienda desde el punto de vista de los clientes, pero puede causar problemas en el panel de administración.
PrestaShop descarga periódicamente de la API de Addons las listas de módulos y las guarda localmente en el directorio:
config/xml/
Archivos más importantes
## 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.
Estos archivos se utilizan principalmente en el panel de administración, en la sección Módulos → Gestor de módulos.
PrestaShop los utiliza para:
- mostrar módulos recomendados
- marcar módulos como «imprescindibles»
- integrarse con el mercado de complementos
- presentar módulos nativos
Documentación:
https://devdocs.prestashop-project.org/8/modules/
¿Por qué aparece este error?
Las versiones anteriores de PrestaShop esperan que la API de Addons devuelva los datos en formato XML.
Actualmente, puede ocurrir que los puntos finales de la API:
- estén temporalmente indisponibles
- devuelvan errores
- devuelvan una respuesta en otro formato (por ejemplo, JSON)
- devuelvan una respuesta incompleta
Ejemplo de solicitud:
https://api.addons.prestashop.com/?version=1.6.1.24&method=listing&action=must-have
Si la respuesta no es XML válido, el analizador de PrestaShop (`simplexml_load_string`) devuelve un error:
Start tag expected, '<' not found
Documentación del analizador XML de PHP:
https://www.php.net/manual/en/...
¿Cuáles son los síntomas del problema?
Además de los mensajes XML en el panel de administración, el problema también puede provocar:
- la ausencia de resultados en el buscador
- problemas con el filtrado de módulos
- listas de módulos incompletas
- una carga más lenta de la página de módulos
- errores al navegar por el mercado de complementos
El problema afecta exclusivamente a la sección de gestión de módulos. No afecta a los pedidos, productos, clientes, pagos, carrito ni a la interfaz de la tienda.
Solución rápida
La solución más sencilla es sustituir el contenido de los archivos problemáticos por un XML mínimo y correcto. Accede mediante SSH o FTP a:
config/xml/
Y sustituya el contenido de los archivos por los valores indicados a continuación del nombre del archivo:
## 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/>
Para el futuro: cómo evitar que los archivos se sobrescriban de nuevo
La simple sustitución del XML suele resolver el problema de inmediato, pero conviene recordar que PrestaShop puede volver a intentar descargar y actualizar estos archivos en el futuro. Tienes dos enfoques prácticos.
Opción 1: bloquear la escritura en los archivos
Puedes configurar los archivos como de solo lectura. Es una solución sencilla y rápida, pero sigue basándose en que PrestaShop intentará realizar la actualización, solo que no podrá sobrescribir los archivos. Realiza esta operación a través de SSH o manualmente en un programa de 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
Opción 2: sobrescribir la clase Tools
Una solución más elegante es desactivar la comprobación de la API de complementos mediante la sobrescritura de la clase Tools.
Archivo:
override/classes/Tools.php
Ejemplo de sobrescritura:
php
class Tools extends ToolsCore
{
protected static $is_addons_up = false;
}
Esto hace que PrestaShop:
- no intente conectarse a la API de Addons
- no vuelva a descargar esos archivos XML
- no genere los errores asociados a ello
Documentación sobre la anulación:
https://devdocs.prestashop-pro...
Después de añadir la anulación, hay que limpiar la caché; hazlo manualmente o mediante SSH:
PS 1.7:
rm -rf var/cache/*
PS 1.6:
rm -rf cache/class_index.php
¿Qué perdemos al desactivar la API de complementos?
En la práctica, la mayoría de las tiendas en producción instalan los módulos manualmente de todos modos, por lo que la pérdida de esta función no suele tener importancia.
No funcionará:
- la lista de módulos recomendados
- el marketplace en el panel
- sugerencias de módulos
- marcado como «imprescindible»
- visualización de complementos desde el panel de administración
Sigue funcionando:
- instalación de módulos desde ZIP
- instalación manual de módulos
- actualizaciones de módulos
- toda la tienda
- los pedidos
- finalización de la compra
Resumen
El problema se debe a la comunicación entre la versión antigua de PrestaShop y la API de Addons. Puntos clave:
- no es un problema del servidor
- no es un problema de configuración de la tienda
- no se trata de malware
- no afecta a las ventas
- solo afecta al panel de módulos
La mejor solución:
- Modificar el XML
- Desactivar la API de complementos
Recomendación
Si la tienda funciona de forma estable, se puede aplicar con seguridad la solución alternativa anterior. Si la tienda sigue funcionando con PrestaShop 1.6 o la versión antigua 1.7, también vale la pena considerar:
- actualizar a una versión más reciente
- una auditoría técnica
- actualizar los módulos
- optimizar el rendimiento
En cualquiera de los casos anteriores, no dudes en ponerte en contacto con nosotros, ¡te ayudaremos! :-)







