🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Solución de errores 500 en PrestaShop

Actualizado el 30 de noviembre de 2025

¡Hola! Soy tu técnico de soporte amigable. Si estás leyendo esto es porque seguramente has visto la temida pantalla blanca o el mensaje "Error 500 – Internal Server Error" en tu tienda PrestaShop. No te preocupes, es uno de los errores más comunes y, en la mayoría de los casos, se puede solucionar sin ser un experto en programación.

En esta guía extensa y detallada, vamos a desglosar paso a paso cómo identificar y solucionar el error 500 PrestaShop. Te explicaré desde las causas más simples hasta las más complejas, usando un lenguaje claro y ejemplos prácticos. Al final, tendrás un plan de acción completo para que tu tienda vuelva a funcionar.


¿Qué es exactamente un error 500 en PrestaShop?

El error 500 PrestaShop es un código de estado HTTP que significa "Error interno del servidor". En términos sencillos, el servidor donde está alojada tu tienda ha encontrado un problema inesperado que le impide procesar tu solicitud. No es un error de tu navegador ni de tu conexión a internet; es un problema en el propio sitio web.

Las causas pueden ser muy variadas: un archivo de configuración dañado, un plugin (módulo) incompatible, un tema defectuoso, problemas de memoria del servidor, o incluso un simple archivo .htaccess corrupto. Lo bueno es que, siguiendo un método lógico, podemos encontrar la raíz del problema.

[INFO] Un error 500 no te da pistas visuales sobre qué está fallando. Por eso, lo primero que haremos será activar los logs de error para que PrestaShop nos cuente exactamente qué ocurre.


Paso 1: Activar los logs de error de PrestaShop (la clave para entenderlo todo)

Por defecto, PrestaShop oculta los mensajes de error detallados por seguridad. Para solucionar error 500 necesitamos verlos. Hay dos formas principales de hacerlo:

Opción A: Modificando el archivo defines.inc.php (recomendado para principiantes)

  1. Conéctate a tu panel de control de hosting (cPanel, Syspanel, Plesk, etc.). Si usas Syspanel, recuerda que el acceso es a través del puerto 2106.
  2. Busca el Administrador de Archivos o File Manager.
  3. Navega hasta la carpeta raíz de tu PrestaShop (normalmente public_html o www).
  4. Dentro, busca la carpeta config y ábrela.
  5. Localiza el archivo defines.inc.php. Haz clic derecho y selecciona Editar.
  6. Busca la línea que dice:
    define('_PS_MODE_DEV_', false);
  7. Cámbiala por:
    define('_PS_MODE_DEV_', true);
  8. Importante: Justo debajo, añade esta línea para que los errores se muestren en pantalla:
    define('_PS_MODE_DEV_', true);
    @ini_set('display_errors', 'on');
  9. Guarda los cambios y cierra el archivo.

Ahora, cuando recargues la página que daba error, verás un mensaje detallado como:
Fatal error: Uncaught Error: Call to undefined function... o Parse error: syntax error, unexpected.... Ese mensaje es oro puro para identificar el problema.

[WARNING] No dejes esta configuración activada en una tienda en producción. Una vez resuelto el error, vuelve a poner define('_PS_MODE_DEV_', false);. Si no, cualquier visitante podría ver información sensible de tu servidor.

Opción B: Usando el archivo .htaccess (si no puedes editar defines.inc.php)

Si no encuentras el archivo o tienes problemas de permisos, puedes añadir estas líneas al inicio de tu archivo .htaccess (en la raíz de PrestaShop):

php_value display_errors on
php_value error_reporting 32767

Guarda y prueba. Si no funciona, es posible que tu hosting tenga restricciones para estas directivas.


Paso 2: Interpretar el mensaje de error (traducción de "jeroglíficos" a español)

Una vez activado el modo desarrollo, verás un mensaje como este:

Fatal error: Uncaught TypeError: Return value of Cart::getProducts() must be of the type array, null returned in /home/usuario/public_html/classes/Cart.php:1234

Vamos a traducirlo:

  • Tipo de error: "Fatal error" o "Parse error". Indica gravedad.
  • Archivo y línea: /classes/Cart.php:1234. Ahí está el problema.
  • Descripción: "Return value of Cart::getProducts() must be of the type array, null returned". Significa que una función esperaba un array pero recibió un valor nulo.

Con esta información, sabes que el error ocurre en el archivo Cart.php, línea 1234. Las causas comunes:

  • Un módulo de terceros está alterando esa función.
  • La base de datos tiene un valor nulo donde debería haber un array.
  • El archivo Cart.php está dañado o es una versión incorrecta.

Paso 3: Soluciones rápidas para los errores 500 más comunes

Aquí tienes un checklist ordenado de lo que puedes probar, de lo más simple a lo más complejo.

3.1. Desactivar todos los módulos (la solución estrella)

Muchos errores 500 PrestaShop son causados por un módulo recién instalado o actualizado. Para desactivarlos sin entrar al panel de administración (que probablemente también da error):

  1. Conéctate a tu hosting por FTP o File Manager.
  2. Ve a la carpeta raíz de PrestaShop y luego a /modules.
  3. Renombra la carpeta del módulo sospechoso añadiendo un guion bajo al inicio, por ejemplo: _nombre_del_modulo. Esto lo desactiva forzosamente.
  4. Si no sabes cuál es el culpable, renombra la carpeta completa de modules a modules_off. Luego crea una nueva carpeta vacía llamada modules. Esto desactivará TODOS los módulos.
  5. Prueba a cargar tu tienda. Si funciona, el problema está en uno de los módulos. Ve moviendo módulos de la carpeta modules_off a la nueva modules uno por uno hasta encontrar el que da error.

[TIP] Si renombras toda la carpeta modules, tu tienda cargará sin funcionalidades extra, pero es una forma infalible de descartar problemas de módulos.

3.2. Restaurar el tema por defecto (si el error aparece en el front office)

Si el error solo aparece al ver la tienda (no en el back office), el tema puede ser el culpable.

  1. Accede a la base de datos de tu tienda (phpMyAdmin desde tu panel de control).
  2. Busca la tabla ps_configuration (el prefijo ps_ puede variar).
  3. Localiza la fila con name = 'PS_CATALOG_MODE' y bórrala o cámbiala a 0.
  4. También busca PS_THEME_NAME y cámbialo a default (o classic si usas PrestaShop 1.7+).
  5. Guarda y prueba.

3.3. Revisar el archivo .htaccess

Un archivo .htaccess corrupto es una causa muy frecuente.

  1. Accede a la raíz de tu PrestaShop.
  2. Renombra el archivo .htaccess a .htaccess_old.
  3. Prueba a cargar tu tienda. Si funciona, el problema está en ese archivo.
  4. Para regenerarlo, entra al back office de PrestaShop (si puedes) y ve a Configuración de la tienda > Rendimiento > Haz clic en "Guardar" (sin cambiar nada). Esto regenera el .htaccess automáticamente.
  5. Si no puedes entrar al back office, puedes copiar un .htaccess limpio desde una instalación nueva de PrestaShop o pedir a tu hosting que lo genere.

3.4. Aumentar el límite de memoria PHP

A veces el error 500 aparece porque el script se queda sin memoria.

  1. Localiza el archivo php.ini en la raíz de tu hosting (o créalo si no existe).
  2. Añade o modifica esta línea:
    memory_limit = 256M
  3. Si no tienes acceso a php.ini, puedes intentar añadir esto en el .htaccess:
    php_value memory_limit 256M

[INFO] El límite mínimo recomendado para PrestaShop es 128M, pero 256M o 512M son valores seguros para tiendas con muchos módulos.

3.5. Verificar permisos de archivos y carpetas

Los permisos incorrectos pueden impedir que PrestaShop lea o escriba archivos necesarios.

  • Los archivos deben tener permisos 644.
  • Las carpetas deben tener permisos 755.
  • La carpeta cache, log y upload deben tener permisos 777 temporalmente (luego vuelve a 755).

Puedes cambiar permisos desde el File Manager de tu hosting o vía FTP (clic derecho > Permisos).


Paso 4: Soluciones avanzadas (cuando lo básico no funciona)

Si después de todo lo anterior el error persiste, toca profundizar un poco más.

4.1. Revisar los logs del servidor

Tu hosting guarda registros detallados de errores. En Syspanel, puedes encontrarlos en:

  1. Accede a Syspanel (puerto 2106).
  2. Ve a Registros > Registros de errores.
  3. Busca la línea que coincida con la hora del error. Verás algo como:
    [Fri Oct 20 10:00:00 2023] [error] [client IP] PHP Fatal error: Uncaught Error: Call to undefined function...
  4. Ese mensaje te dará la pista definitiva.

4.2. Reparar archivos de PrestaShop

Si el error apunta a un archivo del núcleo (core), es posible que esté dañado.

  1. Descarga la misma versión de PrestaShop que tienes instalada desde el sitio oficial.
  2. Sube los archivos de la carpeta classes, controllers y override (sin sobrescribir la carpeta config ni modules).
  3. Si usas un override personalizado, haz una copia de seguridad antes.

4.3. Comprobar la base de datos

Una tabla corrupta también puede provocar errores 500.

  1. Desde phpMyAdmin, selecciona tu base de datos.
  2. En la parte inferior, elige Marcar todas y en el desplegable selecciona Reparar tabla.
  3. Espera a que termine. Si hay errores, te lo indicará.

Preguntas Frecuentes (FAQ) sobre el error 500 en PrestaShop

P: ¿El error 500 puede deberse a un problema de hosting?
R: Sí. A veces el servidor tiene una configuración de PHP incorrecta o recursos insuficientes. Si después de todas las pruebas el error persiste, contacta a tu proveedor de hosting y diles que revisen los logs del servidor.

P: ¿Pierdo datos si renombro la carpeta modules?
R: No. Los módulos están en la base de datos, pero sus archivos están en la carpeta modules. Al renombrarla, solo desactivas temporalmente las funcionalidades. Tus productos, clientes y pedidos no se ven afectados.

P: ¿Puedo evitar futuros errores 500?
R: Sí, siguiendo buenas prácticas:

  • Siempre haz copias de seguridad antes de actualizar módulos o el núcleo.
  • No instales módulos de fuentes no oficiales.
  • Mantén PrestaShop y todos los módulos actualizados.
  • Usa un tema compatible con tu versión de PrestaShop.

P: ¿Qué hago si veo el error solo al guardar un producto o al hacer checkout?
R: Es muy probable que sea un módulo específico (de pago, envío, etc.). Desactiva módulos de pago y envío uno por uno para identificar al culpable.

P: ¿El modo desarrollo es peligroso?
R: Solo si lo dejas activado en una tienda en vivo. Los visitantes podrían ver rutas de archivos y configuraciones internas. Actívalo solo para depurar y desactívalo inmediatamente después.


Conclusión: Ya tienes un plan de batalla

El error 500 PrestaShop puede ser frustrante, pero con paciencia y siguiendo estos pasos, casi siempre tiene solución. Recuerda:

  1. Activa el modo desarrollo para ver el error real.
  2. Prueba las soluciones rápidas: desactivar módulos, restaurar tema, revisar .htaccess.
  3. Si no funciona, profundiza con logs del servidor y reparación de archivos.

Y si después de todo esto el error sigue apareciendo, no dudes en contactar a tu soporte técnico de hosting. Muchas veces ellos pueden ver cosas que nosotros no desde el panel.

Espero que esta guía te haya sido de gran ayuda. ¡Tu tienda volverá a funcionar en poco tiempo! Si tienes alguna duda, recuerda que estamos aquí para ayudarte.

[TIP] Guarda esta guía en tus favoritos. Te será útil cada vez que enfrentes un error 500 en PrestaShop. ¡No olvides hacer copias de seguridad periódicas!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel