Cómo configurar un cron job en Plesk para PrestaShop
¿Qué es un cron job y por qué PrestaShop lo necesita?
Si alguna vez te has preguntado por qué tu tienda online no genera los informes de ventas automáticamente, por qué los clientes no reciben sus correos de confirmación, o por qué los precios de tus productos no se actualizan a medianoche, la respuesta casi siempre está en los cron jobs.
Un cron job (o tarea programada) es un "despertador" que le dice a tu servidor: "ejecuta este script en este momento exacto, sin que nadie tenga que hacer clic en nada". En el contexto de PrestaShop, estos scripts son fundamentales para tareas como:
- Enviar correos electrónicos transaccionales (confirmaciones de pedido, recuperación de carritos abandonados).
- Actualizar los precios de los productos (especialmente si usas catálogos de proveedores o feeds de afiliados).
- Generar y enviar informes de ventas o stock.
- Ejecutar tareas de mantenimiento de la base de datos (limpieza de tablas, optimización).
- Procesar pagos recurrentes o suscripciones.
Sin un cron job plesk configurado correctamente, tu tienda depende de que alguien visite una URL específica para que esas tareas se ejecuten. Si nadie la visita, las tareas simplemente no ocurren. Y ahí es donde empiezan los problemas: clientes que no reciben correos, stock desactualizado, o informes vacíos.
En este artículo, te voy a guiar paso a paso para que configures un cron prestashop plesk de forma correcta y segura, incluso si es la primera vez que tocas un panel de hosting. Vamos a hacerlo fácil, sin tecnicismos innecesarios.
Requisitos previos antes de empezar
Antes de lanzarnos a la configuración, necesitas tener tres cosas a mano:
- Acceso al panel de control Plesk: Este es el panel donde gestionas tu dominio, bases de datos y archivos. Normalmente lo accedes desde
https://tu-dominio.com:8443o mediante un enlace que te dio tu proveedor de hosting. - Los datos de acceso a tu tienda PrestaShop: Necesitas saber la URL de tu administración y tener permisos para modificar archivos o acceder al panel de administración.
- La ruta absoluta a tu carpeta de PrestaShop: Generalmente es algo como
/var/www/vhosts/tudominio.com/httpdocs. Puedes encontrarla en Plesk en la sección Archivos o en Hosting y DNS > Configuración del sitio web.
[INFO] Si tu hosting usa Syspanel (antes conocido como HestiaCP), el acceso al panel se realiza por el puerto 2106 (por ejemplo,
https://tu-dominio.com:2106). Sin embargo, los pasos de configuración de cron jobs en Syspanel son diferentes a los de Plesk, así que si estás en esa plataforma, este tutorial te servirá como referencia conceptual, pero los menús cambiarán.
Paso 1: Accede al administrador de tareas programadas en Plesk
Plesk tiene una sección específica para gestionar los cron jobs. No es necesario que toques archivos complejos del sistema ni que uses la terminal (aunque si te atreves, también puedes hacerlo).
Para acceder:
- Inicia sesión en tu panel de Plesk.
- En el menú lateral izquierdo, busca la pestaña Herramientas y utilidades (o Tools & Settings, si lo tienes en inglés).
- Dentro de esa sección, busca el icono que dice Programador de tareas (o Scheduled Tasks).
- Haz clic en él. Verás un listado de las tareas existentes (si las hay) y un botón verde que dice Crear una tarea programada (o New Task).
[TIP] Si no encuentras el icono, escribe "Programador" en el buscador interno de Plesk. Es muy rápido.
Paso 2: Identifica el script correcto de PrestaShop
PrestaShop, desde la versión 1.7 en adelante, unifica todos los procesos automáticos en un solo archivo llamado cron.php. Este archivo se encuentra en la raíz de tu instalación, es decir, en la misma carpeta donde están las carpetas admin, config, modules, etc.
La URL típica para ejecutar el cron de PrestaShop es:
https://tudominio.com/cron.php?token=TU_TOKEN_SEGURO
Pero, ¿de dónde sacas ese token? Muy fácil:
- Ve al panel de administración de tu PrestaShop.
- En el menú superior, busca Parámetros avanzados (o Advanced Parameters).
- Dentro, selecciona Rendimiento (o Performance).
- Busca la sección Cron o URL del cron. Verás un campo con un token generado automáticamente (una cadena de letras y números). Cópialo.
Ese token es tu "llave secreta" para que el cron se ejecute sin necesidad de iniciar sesión. Si no lo tienes, PrestaShop usa un token por defecto, pero es mucho más seguro generar uno propio.
[WARNING] Nunca compartas tu token de cron. Si alguien lo obtiene, podría forzar la ejecución de tareas y sobrecargar tu servidor o causar acciones no deseadas. Piénsalo como la llave de tu trastero: solo tú deberías tenerla.
Paso 3: Configura el cron job en Plesk (la parte práctica)
Ahora viene el momento clave. Una vez que tienes el token y sabes la ruta de tu tienda, vamos a crear la tarea.
-
En la pantalla de Crear una tarea programada, verás varios campos. Te explico cuáles son importantes:
- Nombre de la tarea: Ponle algo descriptivo como "Cron PrestaShop - Tareas diarias".
- Comando: Aquí es donde escribimos el script que queremos ejecutar. En la mayoría de los casos, usaremos
phpseguido de la ruta absoluta al archivocron.php. - Programación: Aquí defines cuándo y con qué frecuencia se ejecuta.
-
En el campo Comando, escribe algo similar a esto:
php /var/www/vhosts/tudominio.com/httpdocs/cron.php?token=TU_TOKEN_AQUIPero ojo, hay un detalle importante: si usas la URL con
?token=..., el sistema lo interpretará como una petición web. Para que funcione desde la línea de comandos, PrestaShop acepta parámetros directamente. La forma correcta es:php /var/www/vhosts/tudominio.com/httpdocs/cron.php --token=TU_TOKEN_AQUIO bien, si prefieres usar la versión web (más lenta pero más compatible), puedes usar
wgetocurl. Te recomiendo la primera opción conphpporque es más rápida y no depende del servidor web. -
En el campo Programación, selecciona la frecuencia. Para PrestaShop, lo más común es:
- Cada 5 minutos: Para tareas críticas como el envío de correos o la gestión de carritos abandonados.
- Cada hora: Para actualizar feeds de proveedores o sincronizar precios.
- Diario a las 3:00 AM: Para generar informes o hacer limpieza de la base de datos.
Si no sabes qué elegir, empieza con cada 5 minutos. Es un buen equilibrio entre rendimiento y funcionalidad. Más adelante puedes ajustar la frecuencia según las necesidades de tu tienda.
-
Haz clic en Aceptar o Crear.
[INFO] Si tu servidor tiene PHP configurado con una versión específica (por ejemplo, PHP 8.1), es posible que necesites especificar la ruta exacta del binario de PHP. En Plesk, normalmente puedes usar el comando
phpa secas, pero si te da error, busca en Configuración de PHP cuál es la ruta completa (suele ser algo como/opt/plesk/php/8.1/bin/php).
Paso 4: Verifica que el cron se ejecuta correctamente
Configurar el cron es solo la mitad del trabajo. La otra mitad es asegurarte de que realmente funciona. No hay nada más frustrante que creer que todo está automatizado y descubrir un mes después que nada se ha ejecutado.
Para verificarlo:
- Vuelve a la lista de Tareas programadas en Plesk.
- Localiza tu tarea y haz clic en el icono de ejecutar ahora (normalmente es un botón con un símbolo de "play" o un reloj con una flecha).
- Después de unos segundos, revisa si el estado cambia a "éxito" o si aparece un mensaje de error.
- También puedes revisar los logs de la tarea. En Plesk, cada tarea tiene un botón para ver el historial de ejecuciones. Si ves errores, anótalos porque te darán pistas sobre qué está fallando.
Otra forma de verificar es acceder directamente a la URL del cron desde tu navegador (usando el token). Si PrestaShop te muestra un mensaje como "Cron ejecutado correctamente" o simplemente una página en blanco, es que todo va bien.
[TIP] Si el cron falla y no sabes por qué, revisa los permisos de los archivos. El archivo
cron.phpdebe tener permisos de lectura para el usuario del sistema. En Plesk, los permisos correctos suelen ser644para archivos y755para carpetas. Puedes ajustarlos desde el Administrador de archivos.
Errores comunes y cómo solucionarlos
Aquí te dejo una lista con los problemas más habituales que encuentro en soporte técnico cuando los clientes configuran un cron prestashop plesk:
1. Error "Class not found" o "Fatal error"
Esto suele ocurrir cuando la ruta al archivo cron.php es incorrecta, o cuando el script no encuentra los archivos de configuración. Verifica que la ruta en el comando sea exactamente la misma que ves en el Administrador de archivos de Plesk.
2. El cron se ejecuta pero no hace nada
Esto puede deberse a que el token no es válido, o a que el archivo cron.php no tiene permisos de escritura para crear los logs. Revisa que el token en el comando coincida con el del panel de administración de PrestaShop.
3. El cron tarda demasiado o se agota el tiempo
Si tu tienda tiene muchos productos o módulos, el cron puede tardar más de lo que permite el servidor. En ese caso, puedes incrementar el tiempo máximo de ejecución en PHP (en Plesk, en Configuración de PHP, cambia max_execution_time a 300 o 600 segundos).
4. No sé qué token usar
Si no encuentras el token en el panel de administración, busca en tu base de datos. En la tabla ps_configuration, busca el valor de PS_CRON_TOKEN. Pero ojo, esto ya es más avanzado. Si no te sientes cómodo, contacta con tu soporte técnico.
Automatización avanzada: más de un cron job
Aunque PrestaShop usa un solo archivo cron.php, a veces necesitas tareas específicas para módulos concretos. Por ejemplo, un módulo de sincronización de stock de Amazon puede requerir su propio cron.
En ese caso, el proceso es el mismo: creas una tarea nueva en Plesk, pero en el comando pones la ruta al script del módulo en lugar del cron.php general. Por ejemplo:
php /var/www/vhosts/tudominio.com/httpdocs/modules/mimodulo/cron.php
[WARNING] No dupliques tareas que ya hace el cron principal de PrestaShop. Si el módulo ya se integra con el cron general, crear un cron adicional puede provocar conflictos o duplicidad de acciones (por ejemplo, enviar correos dos veces).
Conclusión: la tranquilidad de una tienda automatizada
Configurar un cron job plesk para PrestaShop no es complicado, pero requiere atención a los detalles. Una vez que lo tienes funcionando, te olvidas de las tareas repetitivas y te aseguras de que tu tienda opera las 24 horas del día, los 7 días de la semana, sin que tengas que estar pendiente.
Recuerda los puntos clave:
- Usa el archivo
cron.phpde PrestaShop con tu token único. - Configura la frecuencia según la criticidad de las tareas.
- Verifica las ejecuciones y revisa los logs si algo falla.
- Ajusta los permisos y el tiempo de ejecución si es necesario.
Si has seguido todos los pasos, tu tienda ya está automatizando tareas como un profesional. Y si algo no te cuadra, no dudes en consultar la documentación oficial de PrestaShop o contactar a tu proveedor de hosting. Ellos tienen herramientas para ver los logs del servidor y pueden ayudarte a afinar la configuración.
[TIP FINAL] Te recomiendo que, después de configurar el cron, revises una vez por semana el historial de ejecuciones en Plesk. Es una buena práctica para detectar problemas antes de que afecten a tus clientes. Una tienda automatizada es una tienda que crece sola.
