Configurar el cron job en cPanel para PrestaShop
¿Qué es un cron job y por qué tu PrestaShop lo necesita?
Si alguna vez has visto errores como "El archivo .htaccess no se puede regenerar", "Los precios no se actualizan" o "Los pedidos no se marcan como pagados", es muy probable que tu tienda PrestaShop esté fallando por la falta de un cron job bien configurado.
Un cron job (o tarea programada) es como un despertador que le dice a tu servidor: "Cada cierto tiempo, ejecuta este archivo". En el caso de PrestaShop, hay varios procesos que necesitan ejecutarse de forma periódica para que la tienda funcione correctamente, como el envío de emails transaccionales, la actualización de divisas, la regeneración de imágenes o la limpieza de sesiones.
Configurar el cron job cPanel prestashop no es complicado, pero hay que hacerlo bien. En esta guía te explico paso a paso, sin tecnicismos raros, cómo dejarlo funcionando en menos de 10 minutos.
¿Qué procesos de PrestaShop necesitan un cron job?
Antes de entrar en materia, es importante que sepas qué vas a programar. PrestaShop tiene varios scripts que se ejecutan vía cron, pero los más importantes son:
- El envío de emails: Para que los correos de confirmación de pedido, recuperación de carrito, etc., salgan sin retraso.
- La actualización de tasas de cambio: Si vendes en varias monedas, necesitas que se actualicen los valores.
- La regeneración de imágenes: Sobre todo si has cambiado el tema o el tamaño de las miniaturas.
- El borrado de sesiones antiguas: Para mantener la base de datos ligera.
- La sincronización con módulos: Muchos módulos de pago, envío o ERP necesitan su propio cron.
Todos estos procesos se ejecutan a través del archivo cron.php que se encuentra en la raíz de tu instalación de PrestaShop.
Requisitos previos antes de configurar el cron
Para configurar el cron job cpanel prestashop, necesitas:
- Acceso a cPanel de tu hosting (el panel de control que te da tu proveedor).
- La ruta absoluta a tu carpeta de PrestaShop. Normalmente es algo como
/home/tuusuario/public_htmlo/home/tuusuario/prestashop. - La URL de tu tienda (por ejemplo,
https://tutienda.com). - Una cuenta de correo donde recibir los logs del cron (opcional, pero muy recomendable).
[INFO] Si no sabes cuál es la ruta absoluta de tu tienda, inicia sesión en cPanel y busca la sección "Administrador de archivos". Arriba verás la ruta completa. También puedes usar el comando
pwdsi tienes acceso SSH.
Paso a paso: Configurar el cron job en cPanel para PrestaShop
Vamos a lo importante. Sigue estos pasos al pie de la letra y tendrás tu tarea programada prestashop funcionando.
Paso 1: Accede a cPanel y busca "Cron Jobs"
Inicia sesión en tu cPanel. En el buscador de la parte superior, escribe "Cron Jobs" o navega a la sección "Avanzado". Haz clic en el icono de Cron Jobs.
Paso 2: Configura la frecuencia de ejecución
Aquí tienes que decidir cada cuánto tiempo quieres que se ejecute el cron. La interfaz de cPanel te permite elegir de forma visual:
- Minuto: Cada minuto (recomendado para emails o procesos críticos).
- Hora: Cada hora.
- Día: Cada día.
- Mes: Cada mes.
Para PrestaShop, te recomiendo que elijas cada 5 minutos como mínimo. Esto asegura que los emails salgan rápido y que los procesos de sincronización no se acumulen.
En el campo "Configuración común", selecciona "Una vez por minuto ( * * * * * )" y luego edita el campo de minutos para poner */5. Quedaría así:
*/5 * * * *
Esto significa "ejecuta cada 5 minutos".
Paso 3: Introduce el comando del cron
Este es el paso más importante. En el campo "Comando", tienes que escribir la ruta al archivo cron.php de PrestaShop.
La sintaxis básica es:
php /home/tuusuario/public_html/cron.php
Pero hay que afinar un poco más. Te recomiendo usar esta versión más completa:
php /home/tuusuario/public_html/cron.php >/dev/null 2>&1
El >/dev/null 2>&1 hace que los mensajes de salida se descarten y no se envíen por correo cada vez que se ejecuta. Si quieres recibir un log de errores, cámbialo por:
php /home/tuusuario/public_html/cron.php >> /home/tuusuario/cron_log.txt 2>&1
Esto guardará un registro en un archivo llamado cron_log.txt en tu carpeta de usuario.
[TIP] Si tu hosting usa PHP 8.x o superior, a veces es necesario especificar la versión. Prueba con
php8.2ophp8.3si el comando básico no funciona.
Paso 4: Guarda el cron job
Haz clic en "Agregar nuevo cron job" o "Guardar". cPanel te mostrará un resumen de la tarea programada. Si todo está correcto, verás algo como:
*/5 * * * * php /home/tuusuario/public_html/cron.php >/dev/null 2>&1
Paso 5: Verifica que funciona
La mejor forma de comprobar que el cron job cpanel prestashop funciona es:
- Ve a tu panel de administración de PrestaShop.
- En el menú superior, busca "Parámetros avanzados" > "Rendimiento" o "Información".
- Hay una sección que muestra la "Última ejecución del cron". Si ves una fecha y hora reciente, ¡está funcionando!
También puedes ver el archivo de log que configuraste antes. Si no tiene errores, todo va bien.
Errores comunes al configurar el cron y cómo solucionarlos
Aunque sigas los pasos al pie de la letra, a veces surgen problemas. Aquí tienes los más habituales:
Error 1: "No se encuentra el archivo cron.php"
Esto significa que la ruta es incorrecta. Verifica que la ruta absoluta es correcta. Prueba a acceder a https://tutienda.com/cron.php desde tu navegador. Si te da un error 404, la ruta no es la correcta.
Error 2: "Se ha detectado un error de seguridad"
PrestaShop tiene una protección anti-CSRF. Para evitarlo, puedes añadir un token al comando. En tu backoffice, ve a "Parámetros avanzados" > "Información" y copia el valor de "Token de seguridad del cron". Luego, añádelo al comando:
php /home/tuusuario/public_html/cron.php?token=TU_TOKEN >/dev/null 2>&1
Error 3: El cron se ejecuta pero no hace nada
Esto suele pasar si el archivo cron.php no tiene permisos de ejecución. Ve al "Administrador de archivos" de cPanel, busca cron.php y asegúrate de que tiene permisos 755 o 644.
Error 4: El cron se ejecuta cada minuto en lugar de cada 5
Revisa la sintaxis. Si pusiste * * * * * sin el */5, se ejecutará cada minuto. La sintaxis correcta es */5 * * * *.
Configuración avanzada: Múltiples cron jobs
Si tu tienda es grande o usas módulos que requieren su propia frecuencia, puedes crear varios cron jobs en cPanel. Por ejemplo:
- Un cron cada 5 minutos para el
cron.phpprincipal. - Un cron cada hora para regenerar imágenes.
- Un cron diario para limpiar la caché.
Cada uno tendrá su propio comando y frecuencia. Solo tienes que repetir los pasos anteriores.
[WARNING] No dupliques tareas que ya hace el cron principal. Por ejemplo, no crees un cron para enviar emails si el
cron.phpya lo hace. Podrías saturar el servidor.
Preguntas frecuentes (FAQ) sobre el cron job en PrestaShop
¿Es obligatorio configurar el cron job?
Sí, es muy recomendable. Sin él, muchos procesos de PrestaShop se ejecutan de forma manual o con retrasos. Con el tiempo, notarás que la tienda va lenta o que los emails no llegan.
¿Cada cuánto tiempo debo ejecutar el cron?
Depende de tu tienda. Para una tienda pequeña, cada 15 minutos es suficiente. Para una tienda con mucho tráfico o con módulos de sincronización, cada 5 minutos es lo ideal.
¿Puedo usar "wget" en lugar de "php"?
Sí, puedes usar wget para ejecutar el cron desde una URL. Por ejemplo:
wget -q -O /dev/null https://tutienda.com/cron.php
Pero es menos eficiente que usar PHP directamente, porque consume más recursos del servidor.
¿Qué pasa si no tengo cPanel?
Si tu hosting usa Syspanel (antes conocido como HestiaCP), el proceso es similar. Accede a tu panel en el puerto 2106 (por ejemplo, https://tuhosting:2106), busca la sección "Cron" o "Tareas programadas" y sigue los mismos pasos. El comando será el mismo.
¿Puedo desactivar el cron si no lo necesito?
Sí, pero te recomiendo que no lo hagas. PrestaShop está diseñado para funcionar con cron. Si lo desactivas, algunos módulos dejarán de funcionar correctamente.
Consejos finales para un cron perfecto
Para terminar, aquí tienes algunos consejos que te ahorrarán dolores de cabeza:
- Revisa los logs periódicamente: Si configuraste un log, échale un vistazo una vez al mes. Te avisará de errores antes de que afecten a tus clientes.
- No uses el cron para tareas muy pesadas: Si tienes que regenerar miles de imágenes, hazlo en horario de bajo tráfico (por ejemplo, de madrugada).
- Mantén la contraseña de tu tienda segura: El cron no necesita credenciales, pero si alguien accede a tu cPanel, puede ver el comando y ejecutarlo manualmente.
- Si usas Syspanel (HestiaCP), recuerda que el puerto de acceso es el 2106. El resto del proceso es idéntico al de cPanel.
Configurar el cron job cpanel prestashop es una tarea de mantenimiento básica que cualquier dueño de tienda online debería saber hacer. Con esta guía, ya no tienes excusa para no tener tu tienda funcionando como un reloj suizo.
Si te ha quedado alguna duda, déjala en los comentarios y te echaré un cable. ¡Buena suerte con tu tienda!
