Introducción al Error 500 por Overrides en PrestaShop
El error 500 en PrestaShop es uno de los problemas más frecuentes a los que se enfrentan los administradores de tiendas e-commerce. A menudo, este fallo crítico surge debido a un conflicto en los overrides (sobreescrituras) de clases o controladores, generalmente provocado por una mala instalación de un módulo o incompatibilidades de código PHP.
Causas Principales del Conflicto de Overrides
Existen diversos motivos por los cuales un override puede romper tu tienda PrestaShop:
- Incompatibilidad entre dos módulos que intentan sobrescribir la misma clase (por ejemplo,
Product.phpoCartController.php). - Errores de sintaxis PHP dentro del archivo de override personalizado.
- Falta de limpieza en la caché de PrestaShop tras añadir o eliminar archivos en la carpeta
override/.
Método 1: Activar el Modo Debug para Identificar el Error Exacto
Para solucionar el problema, primero debes saber qué archivo de override está generando el conflicto. Sigue estos pasos para activar el modo de depuración:
- Accede a tu servidor mediante FTP o el Administrador de Archivos de tu Hosting.
- Navega hasta la ruta
config/y edita el archivodefines.inc.php. - Busca la línea que contiene
define('_PS_MODE_DEV_', false);y cámbiala pordefine('_PS_MODE_DEV_', true);. - Guarda los cambios y recarga tu tienda o el panel de administración (Backoffice).
- Anota el mensaje de excepción detallado que aparecerá en pantalla, el cual indicará la clase y el archivo exacto del conflicto.
Método 2: Eliminar o Renombrar el Archivo Override Problemático
Una vez identificado el override causante del error 500, puedes proceder a retirarlo temporalmente para restaurar el acceso:
- Entra a la carpeta raíz de tu PrestaShop vía FTP.
- Dirígete al directorio
override/classes/ooverride/controllers/según corresponda. - Localiza el archivo mencionado en el mensaje de error del Modo Debug (por ejemplo,
Product.php). - Renombra la extensión del archivo a
.bako.txtpara desactivarlo (ejemplo:Product.php.bak).
Método 3: Regenerar el Archivo de la Caché de Overrides (class_index.php)
PrestaShop almacena un índice de todas las clases y sus overrides para mejorar el rendimiento. Si este índice se corrompe, causará errores fatales:
- Accede a la carpeta
var/cache/(en versiones 1.7 y 8) ocache/(en versiones 1.6). - Busca y elimina el archivo llamado
class_index.php. - Vuelve a tu panel de administración e intenta navegar por la tienda; PrestaShop generará un nuevo archivo
class_index.phpautomáticamente sin incluir el override conflictivo. - No olvides volver a desactivar el Modo Debug en el archivo
config/defines.inc.phpcambiando el valor afalsepor seguridad.