🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo configurar un cron job en DirectAdmin para PrestaShop

Actualizado el 20 de abril de 2026

Introducción: ¿Qué es un cron job y por qué tu PrestaShop lo necesita?

Si alguna vez te has preguntado por qué tu tienda PrestaShop no genera los informes de ventas automáticamente, por qué los clientes no reciben sus correos de confirmación a tiempo o por qué los productos importados se quedan a medias, la respuesta suele estar en los cron jobs (tareas programadas).

Un cron job es, en esencia, un "despertador" que le dice a tu servidor que ejecute una tarea concreta en un momento específico. Para PrestaShop, esto es vital, porque muchas de sus funciones más útiles no se activan con la visita de un usuario, sino que dependen de que el sistema ejecute scripts en segundo plano.

En este tutorial DirectAdmin paso a paso, vamos a configurar los cron jobs necesarios para que tu PrestaShop funcione como un reloj suizo, sin necesidad de ser un experto en Linux. Al final, tendrás tu tienda automatizando tareas como envío de emails, generación de sitemaps o limpieza de caché.

¿Qué necesito antes de empezar?

Antes de meternos en materia, asegúrate de tener lo siguiente:

  • Acceso al panel de control DirectAdmin de tu hosting (normalmente en tudominio.com:2222).
  • Las credenciales de administrador (usuario y contraseña).
  • Una instalación funcional de PrestaShop (versión 1.6, 1.7 o 8.x; el procedimiento es similar).
  • Saber la ruta absoluta donde está instalado PrestaShop. Normalmente es algo como /home/usuario/public_html o /home/usuario/tienda.
  • Un poco de paciencia y atención a los detalles.

[INFO] Si no sabes tu ruta exacta, entra en DirectAdmin, ve a "Administrador de archivos" y mira la barra de direcciones. Ahí verás la ruta completa.

Paso 1: Acceder a la sección de Cron Jobs en DirectAdmin

El panel de DirectAdmin es bastante intuitivo. Para encontrar las tareas programadas, sigue estos pasos:

  1. Inicia sesión en tu DirectAdmin.
  2. En el menú principal, busca la sección "Gestión de Cuenta" o "Herramientas avanzadas".
  3. Haz clic en el icono que dice "Cron Jobs" o "Tareas Programadas".

Verás una interfaz con varias casillas. No te asustes, es más sencillo de lo que parece.

Paso 2: Entender el formato del cron job (La "fórmula mágica")

Un cron job se define con 5 campos de tiempo, seguidos del comando a ejecutar. La estructura es así:

minuto hora día-del-mes mes día-de-la-semana comando

  • Minuto: (0-59) ¿En qué minuto exacto se ejecuta?
  • Hora: (0-23) ¿A qué hora? (0 es medianoche, 14 son las 2 PM).
  • Día del mes: (1-31) ¿Qué día del mes?
  • Mes: (1-12) ¿En qué mes?
  • Día de la semana: (0-7) ¿Qué día de la semana? (0 y 7 son domingo, 1 es lunes, etc.)

Para no volvernos locos, DirectAdmin nos ofrece una forma sencilla de rellenar esto con menús desplegables. Pero es bueno que entiendas la lógica.

  • Usar * significa "todos los valores posibles". Por ejemplo, * * * * * ejecuta el comando cada minuto.
  • Usar */5 en el campo de minutos significa "cada 5 minutos".

Paso 3: Los comandos imprescindibles para PrestaShop

PrestaShop necesita al menos un cron job para funcionar correctamente. Los más importantes son los siguientes:

1. El Cron del núcleo (Obligatorio)

Este es el más importante. Es el que permite que el sistema ejecute sus propias tareas internas. PrestaShop crea un archivo llamado cron.php en la raíz de tu instalación.

Comando a usar:

php /home/usuario/public_html/cron.php

¿Cada cuánto? Cada 5 minutos es lo recomendado por defecto.

Cómo configurarlo en DirectAdmin:

  1. En la sección "Comando", escribe la ruta de arriba (cambiando usuario por tu usuario real de hosting).
  2. En "Minuto", selecciona */5 (o escribe */5 en el campo).
  3. Deja el resto en *.
  4. Haz clic en "Agregar Cron Job".

[TIP] Si tu hosting usa PHP 8.x (muy probable), a veces el comando php no es suficiente. Si ves errores, prueba con la ruta completa del binario de PHP. En DirectAdmin, puedes encontrarla en "Configuración de PHP" o usando which php en la terminal. Suele ser algo como /usr/local/php83/bin/php.

2. El Cron para el envío de emails transaccionales

¿Tus clientes no reciben los correos de "Pedido confirmado"? Esto suele pasar porque el cron de correo no está configurado.

Comando a usar:

php /home/usuario/public_html/cron.php --domain=tudominio.com --token=TU_TOKEN_DE_SEGURIDAD

¿Dónde encuentro el token? En el Panel de Administración de PrestaShop, ve a Parámetros Avanzados > Rendimiento y busca la sección "Cron". Ahí verás un enlace generado automáticamente. Ese enlace contiene el token.

Cómo configurarlo:

  1. Copia la URL completa que te muestra PrestaShop (algo como https://tudominio.com/cron.php?token=abc123).

  2. En DirectAdmin, en el campo "Comando", escribe lo siguiente (adaptando la ruta y el token):

    php /home/usuario/public_html/cron.php --token=abc123
    

    O si prefieres usar la URL directamente (a veces más fiable):

    wget -O /dev/null "https://tudominio.com/cron.php?token=abc123"
    
  3. Programa este cron para que se ejecute cada 10 minutos.

3. El Cron para generar el Sitemap (SEO)

Si quieres que Google indexe tus productos rápidamente, este cron es tu mejor amigo. Genera automáticamente tu sitemap.xml.

Comando a usar:

php /home/usuario/public_html/cron.php --domain=tudominio.com --token=TU_TOKEN --task=generate_sitemap

[WARNING] No todos los módulos de SEO generan sitemaps vía cron de forma nativa. Si usas un módulo de terceros como "PrestaShop Sitemap Pro", consulta su documentación para ver el comando específico. El comando de arriba funciona con el módulo oficial de PrestaShop.

Frecuencia recomendada: Una vez al día. En DirectAdmin, pon el minuto en 0 y la hora en 3 (las 3 AM, cuando hay menos tráfico).

Paso 4: Configuración avanzada (Opcional pero útil)

4. El Cron para limpiar la caché

PrestaShop acumula archivos temporales que pueden ralentizar tu tienda. Un cron de limpieza es una gran idea.

Comando a usar:

php /home/usuario/public_html/cron.php --token=TU_TOKEN --task=clear_cache

Frecuencia: Cada 6 horas (por ejemplo, a las 0, 6, 12 y 18 horas).

5. El Cron para importar productos desde un CSV

Si tienes un proveedor que te da un CSV, puedes automatizar la importación diaria.

Comando a usar:

php /home/usuario/public_html/importar.php

(Esto asume que tienes un script personalizado llamado importar.php en la raíz. Si no lo tienes, ignora este paso).

[INFO] Si usas un script personalizado, asegúrate de que los permisos del archivo sean 755 para que el servidor pueda ejecutarlo sin problemas.

Paso 5: Verificar que tus cron jobs funcionan

Configurar los cron jobs es solo la mitad del trabajo. Necesitas asegurarte de que están funcionando. DirectAdmin tiene un sistema de logs integrado.

  1. En la página de Cron Jobs, desplázate hacia abajo hasta la sección "Cron Jobs existentes".
  2. Verás una lista de tus tareas programadas.
  3. Junto a cada una, hay un botón o enlace que dice "Log" o "Ver Log". Haz clic en él para ver la salida del comando.
  4. Si no hay errores (como "PHP Fatal error" o "File not found"), ¡enhorabuena! Tus cron jobs están funcionando.

[WARNING] Si el log no muestra nada o está vacío, puede ser que el cron no se haya ejecutado todavía. Espera al menos 15 minutos. Si sigue vacío, revisa que la ruta del archivo cron.php sea correcta.

Errores comunes y cómo solucionarlos

Error 1: "Permission denied" (Permiso denegado)

Esto significa que el usuario de PHP no tiene permisos para ejecutar el archivo.

Solución: Cambia los permisos de la carpeta de PrestaShop a 755 y los archivos a 644. Puedes hacerlo desde el "Administrador de archivos" de DirectAdmin seleccionando la carpeta y haciendo clic en "Permisos".

Error 2: "Class not found" o errores de memoria

A veces el PHP de la línea de comandos (CLI) usa una configuración diferente a la del servidor web.

Solución: Aumenta el límite de memoria en el comando. Por ejemplo:

php -d memory_limit=512M /home/usuario/public_html/cron.php

Error 3: La URL no responde (para cron con wget)

Si usas wget y te da error, prueba a añadir --no-check-certificate si usas SSL:

wget -O /dev/null --no-check-certificate "https://tudominio.com/cron.php?token=abc123"

Preguntas frecuentes (FAQ)

¿Cuántos cron jobs necesita mi PrestaShop?

Como mínimo, uno: el del núcleo (cron.php). Los demás son para optimizar tareas específicas. Te recomiendo empezar con el principal y el de emails.

¿Puedo usar "cPanel" en lugar de DirectAdmin?

Este tutorial es específico para DirectAdmin, pero la lógica es la misma. En cPanel, la sección se llama "Cron Jobs" y está en "Avanzado".

¿Qué pasa si mi hosting usa Syspanel?

Si tu proveedor usa Syspanel (antes conocido como HestiaCP), el procedimiento es similar. Accede a través del puerto 2106 (ej. tudominio.com:2106), busca la sección "Cron Jobs" y sigue los mismos pasos. La sintaxis de los comandos es idéntica.

¿Puedo programar un cron para que se ejecute en un horario específico de mi país?

Sí, pero ten en cuenta que DirectAdmin usa la hora del servidor. Si tu servidor está en UTC y tú estás en México (UTC-6), una tarea a las 3 AM en el servidor son las 9 PM del día anterior para ti. Ajusta las horas en consecuencia.

¿Qué es mejor, usar php o wget?

Generalmente, usar php es más rápido y no consume recursos de red. Usa wget cuando tengas problemas de permisos o necesites ejecutar una URL exacta que no sea el cron.php estándar.

Conclusión: Automatiza para escalar

Configurar un cron job en DirectAdmin para PrestaShop no es un lujo, es una necesidad. Te ahorrará dolores de cabeza, quejas de clientes por emails no recibidos y horas de trabajo manual.

Empieza con el cron básico del núcleo y ve añadiendo los demás poco a poco. Revisa los logs cada semana durante el primer mes para asegurarte de que todo va sobre ruedas.

Con estos pasos, tu tienda no solo estará más optimizada, sino que automatizar tareas te permitirá centrarte en lo que de verdad importa: vender y hacer crecer tu negocio.

[TIP] Guarda este tutorial en tus favoritos. Cada vez que instales un módulo nuevo que requiera tareas programadas, ya sabrás exactamente dónde ir y qué hacer.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel