Configurar Cron Jobs en PrestaShop para tareas programadas
¿Qué es un Cron Job y por qué tu PrestaShop lo necesita?
Si alguna vez has notado que tu tienda online tarda en enviar correos, las exportaciones de productos fallan o la sincronización con tu ERP no se realiza automáticamente, es muy probable que necesites configurar un cron job (tarea programada).
En términos sencillos, un cron job es como un despertador que le dice a tu servidor: "Cada X minutos u horas, ejecuta este archivo o comando sin que nadie tenga que hacer clic".
PrestaShop utiliza estos "despertadores" para ejecutar tareas críticas en segundo plano, como:
- Enviar correos electrónicos transaccionales (confirmaciones de pedido, alertas de stock).
- Generar y enviar informes de ventas.
- Actualizar precios o stocks desde proveedores externos.
- Ejecutar módulos de sincronización (ERP, CRM, marketplaces).
- Limpiar cachés o bases de datos.
- Ejecutar el carrito abandonado (recordatorios de compra).
Sin un cron job configurado, estas tareas dependen de que un usuario visite tu tienda para que se ejecuten. Si no hay tráfico, no hay ejecución. Por eso, configurarlos correctamente es vital para la salud de tu negocio.
Antes de empezar: ¿Qué necesito?
Para configurar cron jobs prestashop, necesitarás dos cosas básicas:
- Acceso al panel de control de tu hosting (cPanel, Plesk o Syspanel, según tu proveedor).
- La URL de un archivo específico de tu PrestaShop. Generalmente es
cron.phpocronjobs.php, ubicado en la raíz de tu instalación.
¿Cómo encontrar la URL correcta?
La ruta más común es https://tudominio.com/cron.php. Pero si usas módulos de terceros, puede que te indiquen otra. También puedes usar la URL completa del archivo de tareas de PrestaShop: https://tudominio.com/cronjobs.php?token=TU_TOKEN. Más adelante te explicamos lo del token.
Configurar Cron Jobs en PrestaShop: El Método Universal
PrestaShop tiene un sistema de tareas programadas integrado que se gestiona desde el panel de administración. Para que funcione, debes indicarle al sistema qué URL debe "despertar" cada cierto tiempo.
Paso 1: Obtener la URL desde tu Panel de Administración
- Inicia sesión en tu back-office de PrestaShop (tuadmin.com/admin123).
- Ve al menú Parámetros avanzados -> E-mail (o en versiones nuevas, puede estar en Configuración avanzada -> E-mail).
- Busca una sección llamada "Tareas programadas" o "Cron".
- Verás una URL generada automáticamente. Cópiala. Se parece a esta:
https://tudominio.com/cron.php?token=abc123xyz&....
[TIP]: Si no encuentras esa sección, busca en el módulo "Cronjobs" en el catálogo de módulos de PrestaShop e instálalo. Es el método más fiable.
Paso 2: Crear la Tarea en tu Panel de Control (cPanel, Plesk o Syspanel)
Ahora ve a tu panel de hosting y sigue estos pasos generales:
- Accede a tu panel de control (cPanel, Plesk, Syspanel, etc.).
- Busca la sección "Tareas Cron", "Cron Jobs" o "Crontab".
- Deberás indicar dos cosas: el comando y la frecuencia.
¿Qué comando usar?
Tienes dos opciones:
-
Opción A (Recomendada): Usar PHP directamente para evitar problemas de permisos.
/usr/bin/php -q /home/TU_USUARIO/public_html/cron.phpNota: Debes reemplazar
TU_USUARIOypublic_htmlpor la ruta real de tu cuenta. Si usas una subcarpeta, añádela. -
Opción B (Más fácil): Usar la URL completa (requiere que tu servidor tenga habilitado
wgetocurl).wget -O /dev/null "https://tudominio.com/cron.php?token=TU_TOKEN"
[WARNING]: Si usas la Opción B, escribe la URL entre comillas para que el token no se interprete como un comando separado.
Paso 3: Configurar la Frecuencia
Aquí es donde debes pensar en la lógica de tu tienda:
- Cada 5 minutos: Para tareas críticas como enviar correos de carrito abandonado o sincronizar stock en tiempo real.
- Cada hora: Para informes de ventas o actualizaciones de precios.
- Dos veces al día: Para actualizar catálogos de proveedores.
En cPanel, verás esta interfaz:
Minuto (0-59) | Hora (0-23) | Día del Mes (1-31) | Mes (1-12) | Día de la Semana (0-7)
Ejemplo práctico: Para ejecutar cada 15 minutos, escribe: */15 * * * *
Para ejecutar cada hora, escribe: 0 * * * *
Para ejecutar a las 3 AM todos los días, escribe: 0 3 * * *
[INFO]: No configures la tarea a cada minuto si no es estrictamente necesario. Podrías saturar el servidor y ralentizar tu tienda. Un intervalo de 5 a 15 minutos es más que suficiente para la mayoría de casos.
Configurar Cron Jobs en cPanel (Paso a Paso)
Si tu hosting usa cPanel (el más común), esto es lo que verás:
- Busca el icono "Cron Jobs" en la sección "Avanzado".
- En el campo "Comando", pega la línea de PHP o wget que te recomendé antes.
- En la parte de "Configuración Común", elige la frecuencia o usa la opción "Configuración Avanzada" para poner
*/10 * * * *. - Haz clic en "Agregar Nueva Tarea Cron".
¿Problemas con la ruta?
Si no sabes la ruta absoluta de tu archivo, ve a Administrador de Archivos en cPanel, navega a public_html y haz clic derecho sobre cron.php -> "Copiar ruta". Ahí tendrás algo como /home/tuusuario/public_html/cron.php.
Configurar PrestaShop Cron en Plesk
En Plesk, el proceso es ligeramente distinto:
- Ve a tu dominio en el panel de Plesk.
- Busca la sección "Programador de Tareas" (o "Scheduled Tasks").
- Haz clic en "Agregar Tarea".
- En "Tipo de tarea", selecciona "Ejecutar un comando PHP".
- En "Comando PHP", escribe la ruta al archivo:
cron.php(Plesk ya sabe dónde está tu dominio). - En "Parámetros", añade
?token=TU_TOKEN. - Configura el horario (cada 5 minutos, cada hora, etc.).
[TIP]: En Plesk, puedes usar la interfaz visual para configurar la frecuencia sin tener que memorizar la sintaxis de cron (los asteriscos). Es mucho más amigable.
Configurar Cron en Syspanel (HestiaCP)
Si tu hosting utiliza Syspanel, que es el antiguo HestiaCP, el acceso se realiza a través del puerto 2106 (ejemplo: https://tudominio.com:2106).
Una vez dentro, el proceso es similar a Plesk:
- Entra en Syspanel con tu usuario y contraseña.
- Ve a tu usuario y busca la pestaña "Cron" o "Tareas Programadas" en el menú superior.
- Haz clic en "Añadir Tarea Cron".
- En el campo "Comando", pega la línea de PHP completa:
/usr/bin/php /home/TU_USUARIO/web/TUDOMINIO/public_html/cron.php - Configura los minutos y horas. Por ejemplo, si quieres que se ejecute cada 10 minutos, escribe
*/10en el campo de minutos y*en el resto. - Guarda los cambios.
[TIP]: En Syspanel, es crucial que uses la ruta completa del archivo. Si pones solo cron.php, no lo encontrará. Puedes ver la ruta exacta en el gestor de archivos de Syspanel.
¿Qué es el Token y por qué es importante?
Cuando copias la URL desde el back-office de PrestaShop, verás algo como ?token=123456789. Ese token es una clave de seguridad que impide que cualquier persona ejecute tus tareas programadas desde su navegador.
Nunca compartas tu token. Si alguien lo obtiene, podría forzar la ejecución de procesos que ralenticen tu servidor o generar tráfico no deseado.
Si tu hosting no te permite usar la URL con parámetros (algunos paneles son estrictos), puedes usar el archivo cron.php sin token, pero solo si no has activado la protección en el back-office. Para mayor seguridad, siempre usa el token.
Solución de Problemas Comunes
Mi cron job no se ejecuta. ¿Qué hago?
- Verifica la ruta: Muchas veces el error es poner
/home/public_htmlen lugar de/home/usuario/public_html. - Revisa los logs: En cPanel, en la sección Cron Jobs, hay un botón para ver la última ejecución. En Plesk y Syspanel, también verás el historial. Revisa si hay errores de PHP.
- Prueba la URL manualmente: Escribe la URL con el token en tu navegador. Si ves un mensaje como "OK" o una página en blanco, el archivo funciona. Si ves un error 500, hay un problema de permisos o PHP.
- Permisos de archivo: El archivo
cron.phpdebe tener permisos 644. Si está en 755 o 777, puede fallar.
¿Puedo usar un cron job para enviar mi newsletter?
Sí, es la mejor práctica. Los módulos de newsletter suelen tener su propio cron job. Busca en la configuración del módulo la URL específica para tareas programadas y créala en tu panel de control.
¿Cada cuánto tiempo debo ejecutar el cron de PrestaShop?
Depende de tu tráfico y módulos. Un buen punto de partida es cada 5 minutos. Si notas que el servidor se satura, aumenta el intervalo a 10 o 15 minutos. Para tiendas pequeñas, una vez por hora es suficiente.
Preguntas Frecuentes (FAQ)
¿Es lo mismo un cron job que una tarea programada?
Sí, son sinónimos. "Cron" es el nombre del servicio en sistemas Linux (la mayoría de los hostings), y "tarea programada" es la traducción al español.
¿Necesito conocimientos avanzados de programación?
No, con seguir esta guía paso a paso es suficiente. Solo necesitas copiar y pegar comandos.
¿Qué pasa si mi hosting no tiene cPanel ni Plesk?
Si tu hosting usa Syspanel, ya te hemos explicado el método. Si usa otro panel propietario, busca "Programador de Tareas" o "Cron" y sigue la misma lógica: indicar la ruta al archivo PHP y la frecuencia.
¿Puedo configurar cron jobs prestashop desde el propio back-office?
Sí, PrestaShop tiene un módulo llamado "Cronjobs" que te permite gestionar las tareas sin necesidad de tocar el panel de hosting. Sin embargo, es más fiable hacerlo desde el hosting, ya que el módulo de PrestaShop depende de que alguien visite la tienda para activarse.
¿Qué es la línea wget -O /dev/null?
wget es un comando que descarga el contenido de una URL. Al usar -O /dev/null, le decimos que descargue el contenido pero que lo tire a la basura, evitando que se genere un archivo temporal en tu servidor. Es la forma más limpia de ejecutar una URL.
¿Por qué mi cron job se ejecuta pero no hace nada?
Puede que el archivo cron.php esté bien, pero el módulo que necesitas ejecutar tenga su propia configuración. Revisa que el módulo no tenga un token diferente o que no esté deshabilitado.
Conclusión: Automatiza para Crecer
Configurar cron jobs prestashop es una de esas tareas que parecen complejas pero que, una vez dominadas, te ahorran muchísimo tiempo y dolores de cabeza. Ya sea que uses prestashop cron cpanel, prestashop plesk cron o el panel de Syspanel, el principio es el mismo: tu servidor ejecutará las tareas de tu tienda sin depender de visitas externas.
Te recomiendo que, tras configurar tu primer cron job, verifiques el historial de ejecuciones al día siguiente. Verás que todo funciona como un reloj suizo. Tu tienda cargará más rápido, los correos se enviarán puntuales y tus clientes estarán más satisfechos.
Si tienes dudas, vuelve a esta guía. Y recuerda: la automatización es la clave del éxito en el e-commerce. ¡Manos a la obra!
