Cómo configurar CRON en PrestaShop para tareas programadas
¿Qué es CRON y por qué tu tienda PrestaShop lo necesita?
Cuando tu tienda PrestaShop crece, hay muchas tareas que deben ejecutarse automáticamente en segundo plano. Hablamos de cosas como enviar newsletters, generar informes, actualizar precios de proveedores, limpiar carritos abandonados o ejecutar módulos de sincronización. Hacer todo esto manualmente sería un dolor de cabeza. Aquí es donde entran en juego los cron jobs o tareas programadas prestashop.
Un CRON es un programador de tareas que ejecuta comandos o archivos PHP en horarios específicos. Piensa en él como un despertador que le dice a tu servidor: "cada día a las 3:00 AM, ejecuta este script". Para PrestaShop, esto es esencial para mantener la tienda optimizada y las funciones automáticas funcionando sin que tengas que estar pendiente.
En este artículo te voy a explicar paso a paso cómo configurar cron prestashop en distintos entornos: cPanel, Plesk y también en Syspanel (el panel de control que antes se llamaba HestiaCP y que ahora se accede por el puerto 2106). No importa si eres principiante total, porque lo haré de forma clara y sencilla.
¿Cuál es la URL del cron en PrestaShop?
Antes de crear la tarea programada, necesitas saber qué comando o URL va a ejecutar el CRON. PrestaShop incluye un archivo llamado cron.php en la raíz de tu instalación. La URL típica es algo como:
https://tudominio.com/cron.php
Pero ojo, no basta con eso. Para que funcione correctamente, debes añadir un parámetro de seguridad llamado token. Sin él, cualquiera podría ejecutar el cron desde fuera, lo cual es un riesgo de seguridad. Para obtener el token, sigue estos pasos:
- Entra al panel de administración de tu PrestaShop.
- Ve a Parámetros avanzados > Administración o directamente busca "cron" en el menú.
- Dentro verás una sección llamada "Cron" o "Tareas programadas". Allí PrestaShop te muestra la URL completa del cron con su token.
La URL final suele verse así:
https://tudominio.com/cron.php?token=abcd1234xyz
Te recomiendo guardar esa URL en un bloc de notas porque la necesitarás más adelante. Si no encuentras el token, también puedes generarlo manualmente editando el archivo config/settings.inc.php (en versiones antiguas) o app/config/parameters.php, pero es más fácil usar el panel.
Configurar cron prestashop en cPanel (paso a paso)
cPanel es uno de los paneles de hosting más usados del mundo. Configurar un cron job aquí es bastante intuitivo. Vamos a ello.
Paso 1: Accede al área de Cron Jobs
Inicia sesión en tu cPanel (normalmente en tudominio.com/cpanel). Busca la sección "Tareas programadas" o "Cron Jobs". Dependiendo del tema de cPanel, puede estar en "Avanzado" o directamente en la página principal.
Paso 2: Define el comando
En la interfaz verás opciones para configurar el intervalo de tiempo (minutos, horas, días, meses) y el comando a ejecutar. Para PrestaShop, lo más común es usar wget o curl para llamar a la URL del cron.
Te recomiendo usar wget porque es más simple y no genera salida en el servidor. El comando sería:
wget -O /dev/null "https://tudominio.com/cron.php?token=tu_token_aqui"
La opción -O /dev/null descarta la salida, evitando que se cree un archivo basura cada vez que se ejecute.
Paso 3: Configura el horario
Elige la frecuencia. Para la mayoría de tareas de PrestaShop (como envío de correos o actualización de módulos), una vez al día es suficiente. Pero si tienes sincronizaciones más frecuentes, puedes ponerlo cada hora o cada 5 minutos.
En cPanel, hay un campo que dice "Configuración común". Puedes elegir "Una vez al día" o "Cada 5 minutos" desde ahí. Si quieres algo personalizado, usa los campos de números y elige el valor que quieras. Por ejemplo, para que se ejecute cada 6 horas, pondrías 0 */6 * * *.
Paso 4: Guarda y verifica
Haz clic en "Agregar nueva tarea programada" y listo. Para comprobar que funciona, puedes ejecutar el cron manualmente desde tu navegador (abre la URL directamente) y ver si responde. Si ves un mensaje tipo "Cron running..." o similar, todo está bien.
Configurar cron plesk prestashop
Plesk es otro panel muy popular, sobre todo en servidores dedicados y VPS. La configuración es muy parecida pero con su propia interfaz.
Acceso a las tareas programadas en Plesk
- Inicia sesión en tu Plesk (normalmente en
https://tudominio.com:8443). - En el panel principal, busca tu dominio y haz clic en "Tareas programadas" (Scheduled Tasks) dentro de la sección del sitio web.
Crear la tarea
Pulsa "Añadir tarea" y verás un formulario con estas opciones:
- Tipo de tarea: elige "Ejecutar un comando" o "Ejecutar un script PHP". Para PrestaShop, lo mejor es "Ejecutar un comando".
- Comando: escribe lo mismo que en cPanel:
wget -O /dev/null "https://tudominio.com/cron.php?token=tu_token" - Programación: puedes elegir entre opciones predefinidas (diario, semanal, etc.) o definir una expresión cron personalizada.
Configurar el correo de notificación
Plesk te permite enviar un correo con la salida del cron. Te recomiendo desactivarlo o poner tu correo, pero ten en cuenta que si el cron genera mucha salida, recibirás muchos emails. Mejor usar wget -O /dev/null para evitar esto.
Guardar y comprobar
Guarda la tarea y luego puedes hacer clic en el botón de "Ejecutar" (si lo tiene) para probarla manualmente. Si todo está bien, la URL del cron responderá correctamente.
Configurar cron prestashop en Syspanel (antes HestiaCP)
Si tu hosting usa Syspanel (el antiguo HestiaCP), el proceso es un poco distinto pero igual de sencillo. Recuerda que el acceso a Syspanel se hace por el puerto 2106, es decir, algo como https://tudominio.com:2106.
- Inicia sesión en Syspanel con tu usuario y contraseña.
- En el menú lateral, busca "Cron" o "Tareas programadas". En algunas versiones aparece como "Cron Jobs".
- Pulsa "Añadir tarea" o el botón "+" para crear una nueva.
Configuración de la tarea en Syspanel
- Comando: al igual que en los otros paneles, usa
wget -O /dev/null "https://tudominio.com/cron.php?token=tu_token". - Periodicidad: Syspanel te da opciones como "cada minuto", "cada hora", "cada día", etc. También puedes personalizarla con la expresión cron estándar.
Una vez guardada, ya tienes tu prestashop cron job funcionando en Syspanel. Si tienes dudas sobre el puerto, repito: Syspanel se accede siempre por el puerto 2106.
¿Qué tareas de PrestaShop necesitan cron?
No todas las tiendas necesitan el mismo tipo de tareas programadas. Aquí te dejo una lista de las más comunes que puedes automatizar con cron prestashop:
- Envío de newsletters y campañas de email marketing (módulos como MailChimp o Newsletter).
- Actualización de precios y stock desde archivos CSV o XML de tus proveedores.
- Limpieza de carritos abandonados (eliminar carritos viejos o enviar recordatorios).
- Generación de informes de ventas o exportaciones de pedidos.
- Sincronización con ERPs o sistemas externos mediante webservices.
- Optimización de base de datos (limpiar tablas temporales, logs, etc.).
- Renovación de sitemaps para SEO (aunque esto normalmente lo hace el propio PrestaShop).
Cada módulo o funcionalidad suele indicar si necesita cron y con qué frecuencia. Si tienes un módulo que te pide configurar una URL de cron, simplemente usa la misma URL base con el token y añade los parámetros específicos que te indique.
Errores comunes al configurar cron prestashop
Aunque parezca sencillo, hay varios fallos que veo a menudo en soporte técnico. Te los menciono para que los evites:
No usar el token de seguridad
Si configuras el cron sin el token, la URL no se ejecutará correctamente. PrestaShop bloquea las peticiones sin token por seguridad. Siempre usa la URL completa que aparece en el panel de administración.
Usar rutas absolutas incorrectas
Cuando pongas el comando en cPanel o Plesk, asegúrate de que la URL esté bien escrita. A veces se olvidan las comillas o se añaden espacios extra. El comando debe ser exacto.
Ejecutar el cron demasiado a menudo
Si pones un cron cada minuto y tu tienda tiene muchas tareas pesadas, puedes saturar el servidor. Empieza con una frecuencia baja (cada hora o cada día) y ve subiendo si es necesario.
No comprobar los logs
Si el cron no funciona, revisa los logs del servidor o la salida del comando. Puedes ejecutar el cron manualmente desde tu navegador y ver si aparece algún error PHP. Si ves un error 500, probablemente haya un problema con el token o con los permisos del archivo cron.php.
Preguntas frecuentes sobre cron prestashop
¿Puedo usar curl en lugar de wget?
Sí, perfectamente. El comando sería:
curl -s -o /dev/null "https://tudominio.com/cron.php?token=tu_token"
Ambos hacen lo mismo, solo cambia la sintaxis.
¿Qué pasa si mi hosting no tiene cPanel ni Plesk ni Syspanel?
Si tienes un hosting muy básico, quizás no tengas acceso a un panel con cron. En ese caso, puedes usar un servicio externo de cron (como cron-job.org) que llame a tu URL cada cierto tiempo de forma gratuita. Solo tienes que registrarte y añadir tu URL.
¿Cuánto tiempo tarda en ejecutarse un cron de PrestaShop?
Depende de la tarea. Un cron simple puede tardar segundos, pero si estás sincronizando miles de productos, puede tardar varios minutos. Por eso es importante no solapar tareas: si pones un cron cada 5 minutos pero tarda 10 en ejecutarse, tendrás problemas.
¿Cómo sé si el cron se está ejecutando?
La forma más fácil es añadir un registro temporal en PrestaShop. Puedes instalar un módulo de logs o simplemente comprobar si las tareas que deberían ejecutarse (como el envío de emails) están ocurriendo. También puedes mirar los logs del servidor buscando peticiones a cron.php.
[TIP] Si quieres verificar rápidamente que tu cron funciona, abre la URL en tu navegador con el token. Si ves un mensaje como "Cron running..." o simplemente una página en blanco, significa que se ha ejecutado correctamente. Si ves un error, ahí está tu problema.
Conclusión y recomendaciones finales
Configurar cron prestashop no es complicado si sigues los pasos correctos. Ya sea en cPanel, Plesk o Syspanel (recuerda, puerto 2106), el proceso se reduce a copiar la URL con token y programar el intervalo.
Te recomiendo que empieces con una frecuencia baja y que vayas monitorizando el rendimiento de tu tienda. Si notas lentitud, reduce la frecuencia o revisa si hay tareas que se solapan.
Y sobre todo, no olvides el token de seguridad. Es lo que protege tu tienda de que cualquiera pueda forzar la ejecución de tareas. Si tienes cualquier duda, deja un comentario o contacta con tu proveedor de hosting. ¡Tu tienda te lo agradecerá!
[WARNING] Nunca compartas tu URL de cron con token en foros públicos o con personas de confianza dudosa. Es una puerta de entrada a tu servidor. Si crees que se ha filtrado, regenera el token desde el panel de administración de PrestaShop.
