Introducción al Error de Overrides en PrestaShop
Uno de los dolores de cabeza más comunes para los administradores y desarrolladores de tiendas virtuales es el fallo relacionado con los overrides (sobrescrituras de clases y controladores). Cuando instalas un nuevo módulo o actualizas el núcleo, es frecuente encontrarse con pantallas blancas o excepciones fatales que impiden el correcto funcionamiento del sitio. En este artículo te mostraremos cómo solucionar este problema de forma definitiva.
¿Cuáles son las causas del error de sobrescritura?
El sistema de overrides de PrestaShop permite modificar el comportamiento original del core sin alterar los archivos nativos. Sin embargo, los motivos principales por los que falla incluyen:
- Incompatibilidad entre dos módulos que intentan sobrescribir la misma clase o método (por ejemplo,
Product.phpoCartController.php). - La caché de PrestaShop no se ha regenerado tras eliminar o añadir un archivo de override.
- Errores de sintaxis en el archivo PHP del override personalizado.
- Falta de permisos de escritura en la carpeta
/cacheo/var/cache.
Método 1: Borrar la caché y regenerar el archivo class_index.php
En la gran mayoría de los casos, PrestaShop almacena un índice de todas las clases y sus overrides disponibles. Si este archivo se corrompe, la tienda dejará de funcionar.
- Accede a tu servidor mediante FTP o el Administrador de Archivos de tu Hosting.
- Navega hasta la ruta
/var/cache/(en versiones recientes) o/cache/(en versiones antiguas). - Busca y elimina manualmente el archivo llamado
class_index.php. - Entra al Panel de Administración (Backoffice) de tu PrestaShop, ve a Parámetros Avanzados > Rendimiento y haz clic en el botón Borrar caché.
Método 2: Desactivar los overrides temporalmente vía FTP
Si no puedes acceder al panel de administración debido a una pantalla blanca o un error 500, deberás desactivar los overrides desde la base de datos o mediante código.
- Accede a tu base de datos utilizando phpMyAdmin.
- Busca la tabla
ps_configuration(el prefijops_puede variar). - Utiliza la herramienta de búsqueda para localizar el registro con el nombre
PS_DISABLE_OVERRIDES. - Cambia el valor de la columna
valuede0a1y guarda los cambios. - Visita tu tienda online; si carga correctamente, sabrás con certeza que el problema proviene de uno de tus overrides.
Método 3: Depurar y corregir conflictos de código en módulos
Si el problema persiste, debes activar el modo debug para identificar exactamente qué archivo está fallando.
- Abre el archivo
config/defines.inc.phpen tu servidor. - Busca la línea que define
_PS_MODE_DEV_y cámbiala defalseatrue:define('_PS_MODE_DEV_', true);. - Recarga tu página web para ver el error exacto y el rastro de la pila (stack trace), el cual te indicará el nombre de la clase conflictiva.
- Revisa el archivo en
override/classes/ooverride/controllers/y soluciona el conflicto de métodos duplicados.