Cómo usar cron jobs en cPanel para PrestaShop (tareas programadas)
¿Qué es un cron job y por qué tu PrestaShop lo necesita?
Si alguna vez has visto en el panel de administración de PrestaShop avisos sobre "tareas programadas" o "cron" sin terminar de entender qué significan, este artículo es para ti. Un cron job (o tarea programada) es, en palabras sencillas, un despertador que le dice a tu servidor que ejecute ciertas acciones automáticamente a intervalos regulares, sin que tú tengas que hacer nada manualmente.
Imagina que tu tienda online es una tienda física. El cron sería como el empleado que llega cada noche a limpiar, revisar el stock y preparar los pedidos para el día siguiente. Sin él, tendrías que hacerlo todo tú, a mano, y probablemente olvidarías hacerlo alguna vez.
En PrestaShop, los cron jobs son esenciales para el correcto funcionamiento de muchas funciones críticas. Entre las más importantes están la generación de tu mapa del sitio (sitemap) para SEO, el envío de correos electrónicos programados (como carritos abandonados), la actualización de tus feeds de productos para Google Shopping o comparadores de precios, y la ejecución de módulos de sincronización con ERPs o sistemas de inventario.
Si no configuras los cron jobs, tu tienda puede funcionar, pero degradará su rendimiento con el tiempo. Por ejemplo, si no se genera el sitemap, Google tardará más en indexar tus productos nuevos. Si no se ejecuta la tarea de carritos abandonados, perderás ventas potenciales. Y si usas módulos que dependen de la sincronización automática, simplemente dejarán de funcionar correctamente.
Por eso, en este artículo aprenderás, paso a paso y sin tecnicismos, cómo configurar los cron jobs prestashop desde cPanel, el panel de control más común en el hosting compartido. Vamos a ello.
Requisitos previos: qué necesitas antes de empezar
Antes de lanzarnos a crear el cron, asegúrate de tener a mano lo siguiente:
-
Acceso a cPanel de tu hosting (normalmente se accede desde
tudominio.com/cpanelotudominio.com:2083). -
La ruta absoluta de tu instalación de PrestaShop. Esto es muy importante. La ruta absoluta es la dirección completa en el servidor donde está instalada tu tienda. Normalmente suele ser algo como
/home/usuario/public_htmlo/home/usuario/public_html/tienda. Para encontrarla, ve a Configuración avanzada > Información en el panel de administración de PrestaShop. Allí verás un campo llamado "Ruta del sitio web" o "Directorio raíz". Esa es la ruta que necesitas. -
La URL de tu tienda, por ejemplo
https://tudominio.com. -
Saber si tu tienda usa SSL (https). Esto es crucial, ya que la URL del cron deberá usar
https://si tu tienda funciona con SSL. -
Un poco de paciencia. No es complicado, pero hay que seguir los pasos con atención.
[WARNING] Si tu hosting no usa cPanel sino otro panel como Syspanel (el cual recuerda que se accede por el puerto 2106), los pasos pueden variar ligeramente. Sin embargo, la mayoría de los paneles modernos tienen una sección llamada "Cron Jobs" o "Tareas Programadas" con opciones muy similares. En este artículo nos centramos en cPanel, que es el más extendido.
Paso 1: Encuentra la sección "Cron Jobs" en cPanel
Lo primero es entrar en tu cPanel. Una vez dentro, busca la sección "Avanzado" o "Tareas Programadas". En la mayoría de los temas de cPanel, verás un icono que dice "Cron Jobs". Haz clic en él.
Si no lo encuentras, usa el buscador de cPanel (generalmente en la esquina superior derecha) y escribe "cron". Te aparecerá la opción directamente.
Paso 2: Configura el entorno (PHP y ruta del cron)
Esta es la parte que más quebraderos de cabeza da a los principiantes, pero te lo explicamos de forma sencilla. Un cron job necesita saber qué comando ejecutar. Para PrestaShop, el comando básico es ejecutar un archivo PHP específico que se encuentra en la raíz de tu instalación. Ese archivo se llama cron.php.
Pero, ¿cómo se ejecuta un archivo PHP desde la línea de comandos? Necesitas indicarle al servidor qué versión de PHP usar y dónde está el ejecutable. Esto se hace con un comando similar a este:
/usr/bin/php /home/usuario/public_html/cron.php
Vamos a desglosarlo:
-
/usr/bin/php: Es la ruta al intérprete de PHP en el servidor. En la mayoría de los hosts es esta, pero puede variar. Si no funciona, puedes probar con/usr/local/bin/phpo consultar la documentación de tu hosting. -
/home/usuario/public_html/cron.php: Es la ruta absoluta a tu archivocron.php. Sustituyeusuariopor tu nombre de usuario de hosting ypublic_htmlpor tu ruta real. Si tu tienda está en una subcarpeta, sería algo como/home/usuario/public_html/tienda/cron.php.
[TIP] Si no sabes cuál es tu ruta absoluta, en cPanel suele haber una herramienta llamada "Administrador de archivos". Navega hasta la carpeta donde está tu PrestaShop, y en la barra de direcciones superior verás la ruta completa. Cópiala y úsala.
Paso 3: La configuración del cron en PrestaShop (el parámetro token)
Ahora viene el detalle importante. No basta con ejecutar el archivo cron.php. PrestaShop necesita una confirmación de que la tarea viene de un lugar seguro. Para ello, usa un parámetro llamado token. Este token es una clave secreta que solo tú conoces y que impide que cualquiera pueda ejecutar el cron de tu tienda.
¿Dónde encuentras este token? Muy fácil:
-
Entra al panel de administración de tu PrestaShop.
-
Ve a Configuración avanzada > Información (o "Información avanzada").
-
Busca el campo llamado "Token de seguridad del cron" o "Secure token". Verás una cadena de caracteres alfanumérica. Cópiala y guárdala.
-
También puedes verlo en la propia página de Parámetros avanzados > Rendimiento, pero la ruta más fiable es la de Información.
Una vez que tengas el token, tu comando de cron debería quedar así:
/usr/bin/php /home/usuario/public_html/cron.php?token=TU_TOKEN_AQUI
Es decir, añades un signo de interrogación ? y luego token= seguido de tu token. Es fundamental que no haya espacios entre los elementos.
[WARNING] Si tu tienda usa SSL (https), no necesitas añadir nada más al comando. El cron se ejecuta desde el servidor, por lo que la URL no interviene, pero el archivo
cron.phpya está preparado para funcionar con SSL. No obstante, si tu hosting tiene problemas con SSL en la línea de comandos, puedes probar a usar la URL completa en lugar de la ruta absoluta (aunque es menos recomendable). La opción con ruta absoluta es la estándar.
Paso 4: Crea el cron job en cPanel
Ya tienes el comando. Ahora, en la página de "Cron Jobs" de cPanel, verás un formulario con varios campos. Normalmente se divide en dos partes: el entorno y el comando.
4.1. Configura el entorno (ajustes de PHP)
En cPanel, a menudo te pedirá que elijas la versión de PHP. Si tienes varias, selecciona la misma que usa tu tienda (por ejemplo, PHP 8.1 o 8.2). Si no te lo pide, no te preocupes, el comando /usr/bin/php usará la versión por defecto.
4.2. Configura la frecuencia del cron
Aquí es donde decides cada cuánto tiempo se ejecuta la tarea. Para PrestaShop, se recomienda una frecuencia de cada 5 minutos para la mayoría de las tareas (envío de correos, actualización de stock, etc.). Sin embargo, para el sitemap, una vez al día es suficiente.
El formulario de cPanel te ofrece dos opciones:
-
Configuración común: una lista desplegable con opciones predefinidas como "Una vez al día", "Cada 5 minutos", etc. Es la más fácil.
-
Configuración avanzada: te permite escribir la expresión cron manualmente. Por ejemplo,
*/5 * * * *significa "cada 5 minutos". No te asustes, la configuración común es suficiente para el 99% de los casos.
4.3. Escribe el comando
En el campo "Comando" o "Command", pega el comando completo que hemos construido antes, incluyendo el token. Por ejemplo:
/usr/bin/php /home/usuario/public_html/cron.php?token=AbC123dEf456
4.4. Guarda el cron
Haz clic en "Agregar tarea programada" o "Add New Cron Job". Verás que aparece en la lista de crons existentes. ¡Enhorabuena, ya has creado tu primer cron!
Paso 5: Verifica que el cron funciona correctamente
No basta con crearlo, hay que asegurarse de que funciona. La forma más sencilla de verificarlo es comprobar los logs de PrestaShop.
-
En el panel de administración, ve a Configuración avanzada > Registros (o "Logs").
-
Busca entradas relacionadas con el cron. Deberías ver mensajes de éxito o error de la ejecución.
-
También puedes ver en tu servidor si el archivo
cron.phpse está ejecutando. En cPanel, en la sección de "Cron Jobs", a veces hay un botón para "Ejecutar ahora" o "Run Now" que te permite probar la tarea manualmente. Si tu cPanel no lo tiene, puedes probar a ejecutar el comando manualmente desde el "Administrador de archivos" o, si tienes acceso SSH, desde la terminal.
[INFO] Si no ves logs de cron, no te preocupes. Muchos hosts no registran los crons por defecto. Otra forma de comprobar es fijarte en si las tareas que dependen del cron se están ejecutando. Por ejemplo, si tienes un módulo de carritos abandonados, podrías crear un carrito de prueba y ver si recibes el correo después de unos minutos.
Errores comunes y cómo solucionarlos
Error: "No se ha encontrado el archivo cron.php"
Esto significa que la ruta absoluta es incorrecta. Revisa que has escrito bien /home/usuario/public_html/cron.php. Recuerda que el archivo cron.php está en la raíz de tu PrestaShop, junto a index.php y config/.
Error: "Token no válido"
El token que has puesto en el comando no coincide con el de tu PrestaShop. Vuelve a copiarlo desde Configuración avanzada > Información. Asegúrate de no tener espacios ni caracteres extra.
Error: "No se pudo conectar con la base de datos"
Esto suele pasar si la URL de la tienda en la configuración de PrestaShop es incorrecta o si hay un problema con los permisos de la base de datos. Revisa que la tienda funciona correctamente en el navegador antes de ejecutar el cron.
El cron se ejecuta pero las tareas no se hacen
A veces, el cron se ejecuta pero los módulos no funcionan. Esto puede deberse a que los módulos tienen su propia configuración de cron. Por ejemplo, el módulo de Google Shopping puede tener su propio intervalo. Revisa la configuración de cada módulo que dependa de tareas programadas.
Consejos avanzados (pero muy útiles)
-
Añade un parámetro de "tienda" si tienes multitienda: Si usas la funcionalidad de multitienda de PrestaShop, puedes añadir
&id_shop=Nal final del comando para ejecutar el cron solo en una tienda específica. -
Usa la URL en lugar de la ruta absoluta: Si tienes problemas con la ruta absoluta, puedes usar la URL completa:
https://tudominio.com/cron.php?token=TU_TOKEN. Sin embargo, esto es menos eficiente y puede fallar si tu servidor tiene restricciones de seguridad. Es preferible la ruta absoluta. -
Programa el sitemap por separado: Puedes crear un segundo cron que ejecute solo la generación del sitemap. El comando sería similar, pero con un parámetro adicional. Consulta la documentación de tu módulo de sitemap.
-
No ejecutes el cron cada minuto: A menos que sea imprescindible, no configures el cron a menos de 5 minutos. Sobrecargarás el servidor y ralentizarás tu tienda.
-
Revisa los logs periódicamente: Una vez al mes, entra en los logs de PrestaShop y revisa si hay errores recurrentes del cron. Te puede ahorrar muchos problemas.
Preguntas frecuentes (FAQ) sobre cron jobs en PrestaShop
¿Puedo usar el cron de mi hosting en lugar del de PrestaShop?
Sí, de hecho es lo que estamos haciendo. El "cron" es una herramienta del servidor (cPanel) que ejecuta el archivo cron.php de PrestaShop. Es la forma más fiable.
¿Cada cuánto tiempo debo ejecutar el cron?
Depende de las necesidades de tu tienda. Para un ecommerce estándar, cada 5 minutos es una buena frecuencia para tareas como envío de correos y actualización de stock. Para el sitemap, una vez al día o cada 12 horas es suficiente.
¿Qué pasa si mi hosting no tiene cPanel?
Si tu hosting usa otro panel, como Syspanel (accesible por el puerto 2106), busca la sección "Tareas programadas" o "Cron". El concepto es el mismo, solo cambia la interfaz. Si usas un VPS con control total, puedes configurar el cron directamente en el sistema operativo con el comando crontab -e.
¿El cron afecta al rendimiento de mi tienda?
Si lo configuras con una frecuencia razonable, no. Un cron cada 5 minutos consume muy pocos recursos. Si lo pones cada minuto, podría notarse una ligera ralentización en servidores compartidos.
¿Necesito conocimientos técnicos avanzados?
No, si sigues esta guía paso a paso. Lo más complicado es encontrar la ruta absoluta y el token, pero con las instrucciones de arriba es muy sencillo. Si te equivocas, siempre puedes editar o eliminar el cron desde cPanel.
Conclusión: ya no tienes excusa para no automatizar tu tienda
Configurar los cron jobs prestashop desde cPanel es un proceso que, una vez que lo haces, te ahorra muchísimo tiempo y te asegura que tu tienda funciona sola en las tareas más tediosas. Ya sea para el SEO, el email marketing o la sincronización de productos, las tareas programadas prestashop son el motor invisible que mantiene tu ecommerce vivo.
Recuerda los tres puntos clave: encuentra tu token, usa la ruta absoluta correcta y elige una frecuencia sensata. Con eso, tendrás el cron funcionando en menos de 10 minutos.
Si te atascas, no dudes en consultar la documentación de tu hosting o escribir a su soporte técnico. Y ahora, ¡ve y automatiza tu tienda! Tu yo del futuro (y tus clientes) te lo agradecerán.
