Configurar cron jobs para PrestaShop en DirectAdmin
¿Te suena eso de que tu tienda PrestaShop va lenta, los pedidos se quedan a medias o los informes no se generan? El problema, muchas veces, no es tu hosting ni tu conexión, sino que las tareas programadas (cron jobs) no están bien configuradas.
Piensa en los cron jobs como el "personal de limpieza" de tu tienda. Trabajan en segundo plano, a horas concretas, para hacer tareas como enviar emails de carrito abandonado, actualizar precios, generar sitemaps o limpiar caché. Sin ellos, todo se acumula y la tienda se resiente.
En este artículo, te voy a guiar paso a paso para que configures los cron jobs prestashop directadmin sin volverte loco. No necesitas ser un experto en informática, solo seguir estas instrucciones al pie de la letra. Vamos a ello.
¿Qué es un Cron Job y por qué tu PrestaShop lo necesita?
Antes de meter las manos en el código, vamos a entender qué estamos haciendo. Un cron job es, en esencia, una orden que le das al servidor para que ejecute un archivo o comando específico en un horario determinado.
Imagina que tu tienda es una pastelería. Tú eres el pastelero (el administrador), pero no puedes estar todo el día mirando si el horno está a la temperatura correcta. Necesitas un temporizador (el cron job) que te avise o que ajuste la temperatura automáticamente.
En PrestaShop, estas tareas son vitales para:
- Enviar emails transaccionales: Confirmaciones de pedido, facturas, avisos de stock.
- Procesar pagos: Verificar si una transferencia bancaria se ha completado.
- Actualizar divisas y precios: Si trabajas con varias monedas, esto es oro puro.
- Generar el sitemap: Fundamental para que Google encuentre tus productos.
- Limpiar la caché: Para que tu web no se llene de archivos basura.
Sin un cron configurado, PrestaShop intentará hacer estas tareas cuando alguien visite tu web, lo que ralentiza la carga y da una mala experiencia de usuario. Por eso, configurar tareas programadas prestashop es el primer paso hacia una tienda profesional y rápida.
Antes de Empezar: Localiza tu URL de Cron Única
PrestaShop es listo y te da una URL secreta para ejecutar el cron. No uses la URL genérica, porque es menos segura y puede dar problemas. Para encontrarla:
- Accede al panel de administración de tu PrestaShop (normalmente en
tudominio.com/admin). - Ve al menú Parámetros avanzados.
- Haz clic en Rendimiento o ** rendimiento** (dependiendo de la versión, puede variar).
- Busca la sección Cron o Tareas programadas.
Ahí verás un campo que dice algo como: URL para hacer funcionar el cron o URL de retrollamada. Copia esa URL completa. Tiene una pinta similar a esta:
https://tudominio.com/module/pscronservice/cron?token=123456789
Guárdala en un bloc de notas, la vas a necesitar en el siguiente paso. Si no la encuentras, no te preocupes, también puedes usar la URL genérica, pero te recomiendo que busques la específica para evitar conflictos.
Configurar Cron Jobs en DirectAdmin Paso a Paso
Ahora viene la parte práctica. DirectAdmin es el panel de control de tu hosting (donde gestionas los correos, bases de datos, etc.). Vamos a crear el cron job ahí.
Paso 1: Accede a DirectAdmin
Abre tu navegador y ve a la URL de acceso a DirectAdmin. Normalmente es algo como https://tudominio.com:2222 o https://tudominio.com:8443. Introduce tu usuario y contraseña (los mismos que usas para entrar a tu área de cliente del hosting, no los de PrestaShop).
Paso 2: Busca la Sección de Cron Jobs
Una vez dentro, verás un montón de iconos. Busca el que dice Cron Jobs o Tareas Programadas. Su icono suele ser un reloj o un engranaje. Haz clic ahí.
Paso 3: Crea el Cron Job (La Parte Clave)
Verás un formulario con varios campos. Estos son los que nos interesan:
- Comando: Aquí es donde le dices al servidor qué tiene que hacer. No te asustes, no es código complejo. Solo tienes que pegar una línea.
- Minuto, Hora, Día, Mes, Semana: Aquí defines la frecuencia. Para PrestaShop, lo recomendado es que se ejecute cada 5 minutos para estar siempre al día.
Para el Comando, tienes dos opciones:
Opción A: Usar Wget (Recomendada para novatos)
Esta es la más fácil y visual. wget es una herramienta que "visita" la URL que le des. Escribe o pega esto:
/usr/local/bin/php /home/SU_USUARIO/public_html/cron.php
Pero claro, tienes que cambiar SU_USUARIO por tu nombre de usuario de hosting (el que usas para entrar a DirectAdmin) y public_html por la carpeta donde está instalada tu tienda (si es una subcarpeta, pon el nombre, ej. public_html/tienda).
[TIP] Si no sabes tu usuario, míralo en la parte superior derecha de DirectAdmin, justo al lado de tu nombre.
Opción B: Usar la URL de Cron de PrestaShop (Más fiable)
Esta opción es más limpia porque usa la URL que copiaste antes. El comando sería:
/usr/local/bin/php /home/SU_USUARIO/public_html/cron.php
Espera, es el mismo comando. La diferencia es que aquí, en vez de usar el cron.php directamente, podemos hacer que wget llame a la URL mágica. Pero para simplificar, la Opción A es perfecta.
Ahora, la frecuencia:
- Minuto: Pon
*/5(esto significa "cada 5 minutos"). - Hora: Pon
*(cada hora). - Día: Pon
*(todos los días). - Mes: Pon
*(todos los meses). - Semana: Pon
*(todos los días de la semana).
Al final, el formulario debería verse así:
- Comando:
/usr/local/bin/php /home/tuusuario/public_html/cron.php - Minuto:
*/5 - Hora:
* - Día:
* - Mes:
* - Semana:
*
Paso 4: Guarda y Verifica
Haz clic en Crear o Guardar. DirectAdmin te mostrará un mensaje de éxito. ¡Ya lo tienes! Tu tienda ahora ejecutará las tareas programadas prestashop cada 5 minutos.
[WARNING] En algunos hostings, la ruta de PHP puede ser diferente. Si ves un error en el log de cron (que veremos después), prueba con /usr/bin/php en lugar de /usr/local/bin/php.
Cómo Verificar que tu Cron Funciona (Sin Ser un Hackerman)
Configurar el cron es el 50% del trabajo. El otro 50% es comprobar que realmente se ejecuta. No queremos configurarlo a ciegas y que luego no haga nada.
Método 1: El Log de DirectAdmin (El más fiable)
DirectAdmin guarda un registro de todos los crons que se ejecutan. Para verlo:
- Ve a la sección de Cron Jobs de nuevo.
- Busca un botón o enlace que diga Log de Cron o Cron Log.
- Haz clic y verás una lista con las últimas ejecuciones. Deberías ver líneas que dicen algo como
Executing: /usr/local/bin/php /home/tuusuario/public_html/cron.phpy una fecha.
Si aparece eso, ¡felicidades! Tu cron está funcionando.
Método 2: El Log de PrestaShop
Dentro de tu administración de PrestaShop, en Parámetros Avanzados > Rendimiento > Cron, también hay un botón para ver el log. Si el cron se ha ejecutado, verás la fecha y hora de la última ejecución.
Método 3: La Prueba del Carrito Abandonado (La más visual)
Esta es mi favorita porque es 100% práctica. Si tienes el módulo de carrito abandonado activado, añade un producto a tu carrito, inicia el proceso de compra y abandónalo. Espera a que pase el tiempo que configuraste en el módulo (suele ser 24 horas) y, si el cron funciona, recibirás el email de recordatorio. Si no llega, algo está mal.
Solución de Problemas Comunes (FAQ)
Aquí van las dudas que más me encuentro cuando ayudo a clientes con cron prestashop directadmin.
¿Por qué mi cron no funciona si lo he configurado bien?
- Ruta de PHP incorrecta: Es el error más común. Prueba a cambiar
/usr/local/bin/phppor/usr/bin/php. - Carpeta incorrecta: Asegúrate de que la ruta
public_htmles correcta. Si tu tienda está enpublic_html/mitienda, el comando debe ser/home/tuusuario/public_html/mitienda/cron.php. - Permisos de archivo: El archivo
cron.phpdebe tener permisos de ejecución (normalmente 755). Puedes cambiarlo desde el Administrador de Archivos de DirectAdmin.
¿Con qué frecuencia debo ejecutar el cron?
Para una tienda normal, cada 5 minutos es más que suficiente. Si tienes una tienda muy grande con mucho tráfico, puedes ponerlo a cada minuto, pero no lo recomiendo a menos que sea necesario, ya que consume recursos del servidor.
¿Puedo usar la URL de cron de PrestaShop en vez del comando PHP?
Sí, puedes usar wget con la URL. El comando sería:
/usr/bin/wget -O /dev/null "https://tudominio.com/module/pscronservice/cron?token=TU_TOKEN"
Esto le dice al servidor que "visite" esa URL y no guarde nada. Es una alternativa válida, pero la opción con PHP es más ligera y rápida.
¿Qué pasa si uso Syspanel (antes conocido como HestiaCP)?
[INFO] Si tu hosting usa el panel Syspanel (el acceso es por el puerto 2106), la configuración es muy similar. Busca la sección "Cron Jobs" en el menú lateral. La diferencia es que en Syspanel, el formulario es un poco más visual y te permite elegir la frecuencia con un selector en vez de escribir los asteriscos. La lógica es la misma: ruta del PHP + ruta del cron.php.
¿Los cron jobs afectan al rendimiento de mi web?
Si los configuras con una frecuencia razonable (cada 5 o 10 minutos), el impacto es mínimo. El problema es si pones tareas muy pesadas cada minuto, como generar informes enormes. Con la configuración estándar, no notarás nada.
Automatizar PrestaShop Más Allá del Cron Básico
Ahora que ya tienes el cron funcionando, puedes automatizar prestashop para que haga cosas más interesantes. Un cron job no solo sirve para el mantenimiento básico, también puedes usarlo para:
- Actualizar precios desde un archivo CSV: Si tienes un proveedor que te da un archivo con precios, puedes programar un script PHP que lo lea y actualice tu catálogo automáticamente.
- Sincronizar stock con tu almacén: Con un poco de programación, puedes hacer que tu tienda consulte el stock de tu almacén cada hora y actualice las cantidades.
- Crear informes de ventas por email: Puedes hacer que un script genere un PDF con las ventas del día y te lo envíe a tu correo cada mañana.
Esto ya es un nivel más avanzado, pero te abre un mundo de posibilidades. La base es el cron que acabas de configurar.
Conclusión: Tu Tienda, Ahora en Piloto Automático
Configurar los cron jobs prestashop directadmin es una de esas tareas que parecen difíciles pero que, una vez que las haces, te cambian la vida. Tu tienda dejará de depender de que alguien entre a la web para hacer las tareas pesadas, y todo fluirá mucho más rápido.
Hemos visto que no es más que crear una tarea en DirectAdmin con un comando específico y una frecuencia. Hemos solucionado los errores más comunes y ahora sabes cómo verificar que todo funciona.
No tengas miedo de experimentar. Si algo falla, siempre puedes volver a este artículo o consultar el log de DirectAdmin para ver qué ha pasado. La automatización es la clave para escalar tu negocio sin volverte loco gestionando tareas repetitivas.
Ahora, ve a tu panel de DirectAdmin y configura ese cron. Tu tienda (y tus clientes) te lo agradecerán. Si te surge cualquier duda, déjala en los comentarios y te echaré una mano. ¡Buena suerte con tu tienda!
