Errores XML en PrestaShop: arregle las listas de módulos en 5 minutos
Tras iniciar sesión en el panel de administración de PrestaShop 1.6, ¿ve un muro de mensajes rojos como en la imagen de abajo? Tranquilo: la tienda funciona… Tras iniciar sesión en el panel de administración de PrestaShop 1.6, ¿ve un muro de mensajes rojos con frases como las de la imagen de abajo?
Tranquilo: la tienda funciona con normalidad para los clientes, y el problema reside en un mecanismo roto de descarga de datos de la API externa de PrestaShop. En este artículo explicamos de dónde proceden estos errores y cómo eliminarlos de forma permanente en dos pasos mediante FTP.
Tranquilo: la tienda funciona con normalidad para los clientes, y el problema reside en un mecanismo roto de descarga de datos de la API externa de PrestaShop. En este artículo explicamos de dónde proceden estos errores y cómo eliminarlos de forma permanente en dos pasos mediante FTP.
¿Qué son los archivos country_module_list.xml y must_have_modules_list.xml?
PrestaShop 1.6 y 1.7 dispone de un mecanismo integrado que se comunica regularmente con el servidor externo api.addons.prestashop.com. La finalidad de esta conexión es descargar la lista actual de módulos recomendados según el país de la tienda y la lista de módulos marcados como «imprescindibles» (must-have). Los datos descargados se guardan localmente en el directorio/config/xml/ en dos archivos:
- default_country_modules_list.xml: la lista de módulos recomendados para un país determinado,
- must_have_modules_list.xml: la lista de módulos que PrestaShop considera clave para cualquier tienda.
¿Por qué aparecen errores XML en PrestaShop 1.6?
Los errores no se deben a un problema de la propia tienda ni de la base de datos. Su verdadera causa es sencilla: PrestaShop intenta descargar un archivo XML de un servidor externo, pero en lugar de un XML válido recibe una página HTML, casi siempre una página de error 404 o 503, o una redirección. Esto ocurre porque la API de PrestaShop para la versión 1.6 lleva mucho tiempo siendo inestable o no está disponible: esta versión ha dejado de tener soporte oficial del fabricante. A continuación, el analizador XML de PrestaShop intenta procesar ese HTML como XML, lo que acaba en una avalancha de mensajes de error de sintaxis:- Opening and ending tag mismatch: etiquetas HTML como
<head>,<p>,<link>no son XML válido, - EntityRef: expecting ';': los caracteres especiales de HTML (p. ej.
&en atributos) hacen fallar el analizador XML, - Specification mandates value for attribute async: los atributos booleanos de HTML5 como
asyncoselectedno tienen valor, lo cual es inadmisible en XML, - Premature end of data: el analizador XML se topó con el final de un documento inesperado.
Cómo corregir los errores XML en PrestaShop 1.6: instrucciones paso a paso
La solución consta de dos pasos que se realizan por FTP. Todo el proceso lleva menos de 5 minutos. Antes de empezar, descargue en su ordenador local una copia de seguridad del archivoclasses/Tools.php.
Paso 1: desactive la comunicación con la API de Addons en el archivo Tools.php
Por FTP, abra el archivoclasses/Tools.php. Al final del archivo, busque la línea:
protected static $is_addons_up = true;
Cambie el valor true por false:
protected static $is_addons_up = false;
Guarde el archivo y súbalo por FTP. Este cambio hace que el método addonsRequest() devuelva false de inmediato, sin ningún intento de conexión con la API externa: el problema se elimina de raíz.
Paso 2: elimine los archivos XML dañados
Por FTP, vaya al directorio/config/xml/ y elimine dos archivos:
default_country_modules_list.xmlmust_have_modules_list.xml
¿Qué consecuencias tiene desactivar addonsRequest en PrestaShop?
Es la pregunta que se hace todo administrador tras aplicar esta corrección. La respuesta es sencilla: las consecuencias para una tienda en funcionamiento son mínimas. Lo que deja de funcionar tras establecer$is_addons_up = false:
- La sección «Módulos recomendados» del panel de control: no mostrará la lista de módulos recomendados por PrestaShop Addons,
- La sección «Must-have modules»: no se descargará la lista de módulos imprescindibles,
- Las sugerencias automáticas de módulos durante la configuración: el instalador no propondrá extensiones del marketplace.
- Todos los módulos instalados: funcionan sin ningún cambio,
- La instalación manual de módulos desde el BO o por FTP: sin cambios,
- Compras, carrito, pagos, envío: absolutamente sin cambios,
- SEO e indexación por Google: ningún efecto,
- Todo el front-end de la tienda: sin cambios.
classes/Tools.php se sobrescribirá con la versión original. Conviene anotar esta modificación en la documentación técnica de la tienda para recordar volver a aplicarla.
Copia de seguridad antes de modificar: una obligación, no una opción
Antes de cualquier intervención en los archivos de PrestaShop, siempre hay que hacer una copia de seguridad. En este caso, el alcance mínimo de la copia es el archivoclasses/Tools.php: descárguelo por FTP a su ordenador local antes de editarlo. Si algo sale mal al guardar o subir el archivo, tendrá el original a mano y podrá restaurarlo de inmediato. También es una buena práctica disponer de una copia actualizada de toda la base de datos de la tienda, independientemente de los trabajos técnicos que se realicen.
Resumen
Los errores XML en el panel de administración de PrestaShop 1.6 relacionados con los archivoscountry_module_list.xml y must_have_modules_list.xml son un problema clásico derivado de la indisponibilidad de la API externa addons.prestashop.com para esta versión del software. La tienda descarga HTML en lugar de XML y no es capaz de procesarlo, llenando el panel de control de decenas de mensajes de error.
La solución se reduce a dos acciones sencillas por FTP: cambiar un valor en classes/Tools.php de true a false y eliminar dos archivos XML dañados del directorio /config/xml/. Desactivar el mecanismo addonsRequest no afecta a las ventas, al SEO ni al funcionamiento de los módulos instalados: la única funcionalidad que se pierde es la visualización de recomendaciones de módulos del marketplace, que en las tiendas basadas en la versión 1.6 casi nadie utiliza de todos modos.
Si no se siente seguro editando archivos PHP o prefiere encargárselo a un especialista, realizaré con gusto esta reparación por usted. El coste del servicio es de 46 € netos.
AJIT Adam Jasiński
Tel.: 728 658 005
E-mail: ajit@ajit.pl Get notified about new articles
Subscribe by e-mail or turn on browser notifications — we only send new blog posts, nothing else.


Comentarios
Sin comentarios en este momento!
Deje su comentario