Introducción al Error de Timeout en la Importación CSV de PrestaShop
Uno de los dolores de cabeza más comunes para los administradores de tiendas online al gestionar un catálogo grande es encontrarse con el error de tiempo de espera agotado (Gateway Timeout o Maximum Execution Time Exceeded) al intentar importar un archivo CSV en PrestaShop. Este fallo interrumpe la subida masiva de productos, categorías o clientes, dejando la base de datos a medias.
¿Cuáles son las causas principales del error de tiempo de espera?
El núcleo del problema radica en las limitaciones de configuración predeterminadas de PHP y del servidor web (Apache o Nginx). Cuando el archivo CSV es muy pesado o contiene miles de filas, el proceso de importación requiere más segundos de los permitidos por el sistema para completarse, lo que provoca que el servidor corte la conexión abruptamente.
Método 1: Aumentar el max_execution_time y memory_limit en PHP
El primer paso consiste en ampliar el tiempo máximo de ejecución y la memoria asignada a PHP en tu archivo de configuración php.ini o mediante el panel de tu hosting (cPanel o Plesk).
- Accede al panel de control de tu hosting y busca la sección de configuración de PHP o el Administrador de Archivos.
- Localiza el archivo
php.inidentro de la raíz de tu instalación de PrestaShop (o crea uno si no existe). - Modifica o añade las siguientes directivas de configuración:
max_execution_time = 300
memory_limit = 512M
post_max_size = 64M
upload_max_filesize = 64M- Guarda los cambios y reinicia el servicio PHP o el servidor web si tienes acceso SSH con el comando:
sudo systemctl restart php-fpm.
Método 2: Configurar los tiempos de espera en Apache o Nginx
Si tu servidor web corta la conexión antes de que PHP termine de procesar el archivo CSV, necesitarás ajustar los parámetros de timeout a nivel de servidor web.
- Si usas Apache: Añade o edita en tu archivo
httpd.confo en el archivo.htaccessde PrestaShop:Timeout 300yProxyTimeout 300. - Si usas Nginx: Modifica la configuración de tu sitio en el bloque server o location añadiendo:
proxy_read_timeout 300s;yproxy_send_timeout 300s;.
Método 3: Dividir el archivo CSV en partes más pequeñas
Si tu servidor compartido tiene restricciones estrictas que no te permiten aumentar los tiempos de ejecución, la solución más efectiva y segura es fragmentar el archivo CSV.
- Divide tu archivo CSV grande en varios archivos más pequeños que contengan, por ejemplo, entre 500 y 1000 filas cada uno.
- Importa el primer archivo desde el panel de administración de PrestaShop en Parámetros avanzados > Importar.
- Repite el proceso secuencialmente con el resto de los archivos hasta completar todo tu catálogo sin sobrepasar los límites de tiempo del servidor.