Cómo configurar el cron job en PrestaShop para tareas automáticas
¿Qué es un cron job en PrestaShop y por qué lo necesitas?
Si alguna vez has visto avisos en tu panel de administración de PrestaShop sobre "cron job" o "tareas programadas", no estás solo. Es uno de los conceptos que más confusión genera entre los dueños de tiendas online, pero te prometo que es más sencillo de lo que parece.
Un cron job (o tarea programada) es como un despertador que le dice a tu servidor: "Cada cierto tiempo, ejecuta este script sin que nadie tenga que hacer clic". En el contexto de PrestaShop, esto es fundamental para que tu tienda funcione correctamente sin que tú tengas que estar pendiente de todo manualmente.
¿Qué tareas automáticas necesitan un cron en PrestaShop?
PrestaShop utiliza el cron para varias funciones críticas:
- Sincronización de precios y stock con tus proveedores o marketplaces.
- Envío de correos electrónicos pendientes (confirmaciones de pedido, recuperación de carritos abandonados).
- Generación de informes y estadísticas avanzadas.
- Actualización de monedas y tipos de cambio.
- Limpieza de archivos temporales y caché.
- Ejecución de módulos que requieren procesos en segundo plano (como feeds de Google Shopping).
Sin un cron configurado, muchas de estas funciones simplemente no se ejecutan o lo hacen de forma manual cuando tú entras al panel. Esto puede provocar retrasos en los envíos, precios desactualizados o clientes que no reciben sus correos de confirmación.
Configurar cron job en PrestaShop: la forma más fácil (desde el panel)
PrestaShop incluye un sistema interno para gestionar tareas programadas, pero tiene una particularidad: necesitas que el servidor ejecute el cron de PrestaShop, no al revés.
Paso 1: Encuentra la URL del cron en tu PrestaShop
Primero, vamos a localizar la URL exacta que necesitas ejecutar. Sigue estos pasos:
- Entra a tu panel de administración de PrestaShop.
- Ve al menú Parámetros avanzados → Rendimiento.
- En la parte inferior, busca la sección "Cron" o "Tareas programadas" (dependiendo de la versión).
- Verás una tabla con todas las tareas disponibles. Cada una tiene un enlace directo que puedes copiar.
La URL típica del cron de PrestaShop tiene este formato:
https://tutienda.com/module/cron/cron.php?token=TU_TOKEN_ALEATORIO&fc=module
Importante: Ese token es único y funciona como una contraseña. No lo compartas públicamente, porque cualquiera podría ejecutar tareas en tu tienda.
Paso 2: Prueba la URL manualmente
Antes de configurar nada en el servidor, copia la URL completa y pégala en tu navegador (en una ventana de incógnito). Deberías ver un mensaje como "Cron execution completed" o simplemente una página en blanco.
Si ves un error, revisa que el token sea correcto y que tu tienda esté en modo producción (no en mantenimiento).
Paso 3: Configura el cron en tu servidor (cPanel, Syspanel, etc.)
Ahora viene la parte de programar la ejecución automática. Dependiendo de tu proveedor de hosting, el método varía ligeramente, pero el concepto es el mismo.
Si usas cPanel (el más común):
- Entra a cPanel y busca la sección "Tareas Cron" o "Cron Jobs".
- Haz clic en "Nueva tarea cron".
- En el campo de comando, escribe algo como:
/usr/bin/php /home/TU_USUARIO/public_html/module/cron/cron.php?token=TU_TOKEN
Pero ojo, este método tiene truco. En muchos servidores compartidos, el cron de PrestaShop falla si usas rutas absolutas complejas. Una alternativa más fiable es usar wget o curl.
Usando wget (recomendado para principiantes):
wget -q -O /dev/null "https://tutienda.com/module/cron/cron.php?token=TU_TOKEN&fc=module"
Este comando simplemente visita la URL sin descargar nada, como si fuera un navegador invisible.
Usando curl:
curl -s "https://tutienda.com/module/cron/cron.php?token=TU_TOKEN&fc=module" > /dev/null
Ambos funcionan perfectamente.
Paso 4: Elige la frecuencia adecuada
La frecuencia depende de la tarea. Por ejemplo:
- Para actualización de divisas: una vez al día es suficiente.
- Para carritos abandonados: cada 15 o 30 minutos.
- Para envío de correos: cada 5-10 minutos si tienes mucho volumen.
En cPanel, puedes usar la interfaz gráfica para elegir la frecuencia. Por ejemplo:
- Minuto:
*/5(cada 5 minutos). - Hora:
0 * * * *(cada hora en punto). - Día:
0 4 * * *(todos los días a las 4 AM).
Si no estás seguro, empieza con cada 15 minutos (*/15 * * * *) y ajusta según las necesidades de tu tienda.
Configurar cron en PrestaShop desde Syspanel
Si tu hosting usa Syspanel (antes conocido como HestiaCP), el proceso es ligeramente distinto pero igual de sencillo.
Acceso a Syspanel
Para entrar a Syspanel, abre tu navegador y escribe la dirección de tu servidor seguida del puerto 2106. Por ejemplo:
https://tudominio.com:2106
[INFO] El puerto de acceso a Syspanel es siempre el 2106. No lo olvides, porque es diferente al puerto estándar de administración web.
Crear la tarea cron en Syspanel
- Dentro de Syspanel, busca la sección "Cron" en el menú lateral.
- Haz clic en "Añadir tarea" o "Add Job".
- Verás un campo para el comando y otro para la frecuencia (formato cron).
- Introduce el comando con
wgetocurlque te mostré antes. - Para la frecuencia, usa el formato estándar. Por ejemplo,
*/15 * * * *para cada 15 minutos.
[TIP] En Syspanel puedes usar la interfaz visual para seleccionar la frecuencia sin memorizar la sintaxis. Busca el botón que dice "Advanced" o "Avanzado" y te dejará escribir el comando completo.
Verificar que el cron se ejecuta
Después de configurarlo, espera unos minutos y revisa el log de cron en Syspanel. Deberías ver entradas que indican que el comando se ejecutó sin errores.
La alternativa sin servidor: usar un cron externo
Si tu hosting no permite cron jobs (algunos planes muy básicos no lo incluyen) o prefieres no tocar configuraciones del servidor, existe una alternativa: servicios de cron externos.
Estos servicios visitan tu URL de cron cada cierto tiempo, como si fueran un visitante automático. Algunos populares son:
- cron-job.org (gratuito y muy fiable).
- SetCronJob (con plan gratuito limitado).
- EasyCron (versión gratuita con anuncios).
Cómo configurarlo con cron-job.org:
- Crea una cuenta gratuita.
- Haz clic en "New Cron Job".
- Pega la URL de tu cron de PrestaShop.
- Configura la frecuencia (por ejemplo, cada 15 minutos).
- Activa la opción "Log to file" para ver si se ejecuta correctamente.
[WARNING] Si usas un cron externo, asegúrate de que tu tienda no tenga protección anti-bots que bloquee las visitas de estos servicios. Algunos plugins de seguridad pueden confundirlos con ataques.
Solución de problemas comunes con el cron de PrestaShop
Aunque hayas seguido todos los pasos, a veces las cosas fallan. Aquí tienes los problemas más frecuentes y cómo solucionarlos:
El cron no se ejecuta pero no da error
Esto suele pasar cuando el servidor tiene limitado el tiempo de ejecución de scripts. Prueba añadir al final de la URL:
&time=300
Esto le dice a PrestaShop que puede tardar hasta 300 segundos.
Error "Token inválido"
Si ves este mensaje, significa que la URL que estás usando tiene un token incorrecto. Vuelve a copiarla desde el panel de administración. A veces el token cambia al regenerar las claves de la tienda.
El cron se ejecuta pero no hace nada
Revisa si hay conflictos con módulos. Algunos módulos de cache o seguridad pueden interferir. Desactiva temporalmente los módulos de terceros y prueba de nuevo.
En servidores compartidos, el cron se corta
Muchos hostings compartidos limitan el uso de CPU. Si tienes una tienda grande, considera estos consejos:
- Ejecuta el cron en horas de bajo tráfico (ej. 4 AM).
- Divide las tareas: no ejecutes todo en un solo cron.
- Contacta con tu hosting para saber los límites exactos.
Preguntas frecuentes (FAQ) sobre cron job PrestaShop
¿Puedo configurar el cron sin acceso al servidor?
Sí, usando un servicio externo como cron-job.org. Solo necesitas la URL de tu cron y crear una cuenta gratuita.
¿Con qué frecuencia debo ejecutar el cron?
Depende del tamaño de tu tienda. Una tienda pequeña con 100 pedidos al mes puede funcionar bien con una ejecución diaria. Una tienda grande con stock dinámico necesitará ejecuciones cada 5-10 minutos.
¿El cron afecta al rendimiento de mi tienda?
Si está bien configurado, no debería notarse. El cron se ejecuta en segundo plano y consume muy pocos recursos. El problema es cuando se ejecutan tareas pesadas en horas punta.
¿Cómo sé si mi cron está funcionando?
Puedes añadir &log=1 a la URL del cron para que PrestaShop guarde un registro. También puedes revisar los logs del servidor o del servicio externo que uses.
¿Qué pasa si no configuro el cron?
PrestaShop intentará ejecutar algunas tareas cuando entres al panel, pero muchas funciones no funcionarán correctamente. Los carritos abandonados no se recuperarán, los precios no se actualizarán y los correos pueden retrasarse.
¿Es lo mismo cron job que tareas programadas en PrestaShop?
Sí, son lo mismo. PrestaShop llama "tareas programadas" a los cron jobs. La configuración del servidor es lo que realmente ejecuta esas tareas.
Consejos finales para que tu cron funcione perfectamente
Configurar el cron job en PrestaShop no es complicado, pero requiere paciencia y método. Aquí tienes mis últimos consejos:
[TIP] Siempre guarda la URL de tu cron en un lugar seguro. Si pierdes el token, tendrás que regenerarlo desde el panel y actualizar todas tus configuraciones.
- Empieza con una frecuencia baja (una vez al día) y ve aumentando según veas que todo funciona.
- Revisa los logs al menos una vez por semana durante el primer mes.
- Si tienes varias tiendas, cada una necesita su propio cron. No compartas URLs entre tiendas.
- No uses el cron para tareas que puedas hacer manualmente si tu hosting tiene límites estrictos.
Y recuerda: si algo falla, no entres en pánico. El cron de PrestaShop es bastante tolerante a fallos y no suele romper nada. Simplemente no ejecuta las tareas hasta que se resuelva el problema.
Con esta guía, ya tienes todo lo necesario para configurar las tareas programadas de tu tienda y olvidarte de los procesos manuales. Tu PrestaShop funcionará solo, como debe ser.
