PS PrestaShop Principiante

Pedidos Recurrentes y Programados — Documentación PrestaShop 8 y 9

Instalar, planificar y explotar los pedidos recurrentes: del cron diario al enlace de carrito enviado al cliente.

Actualizado Versión del módulo 1.0.0

Qué hace el módulo

El módulo permite a sus clientes programar la repetición de un pedido desde su cuenta: cada semana, cada mes, cada trimestre, cada año, o según un intervalo libre expresado en días.

Antes de cada vencimiento, un planificador envía al cliente un email con un enlace seguro. Cuando el cliente hace clic, su carrito se reconstruye en ese preciso momento y se le redirige al proceso de compra habitual, donde paga con el método que prefiera.

Sin cargo automático. El módulo no almacena ningún medio de pago ni provoca ningún adeudo. No hay mandato recurrente que recoger, ni tarjeta que tokenizar, ni autenticación reforzada que repetir. El cliente confirma y paga él mismo cada pedido.

Instalación

  1. En el back office, abra Módulos — Gestor de módulos y luego Subir un módulo.
  2. Suelte el archivo ZIP suministrado, o copie la carpeta dfrecurringorder en el directorio modules/ de su tienda.
  3. Haga clic en Instalar. Las tablas, las pestañas de administración y los valores predeterminados se crean automáticamente.
  4. Configure la tarea programada descrita en la sección siguiente. Sin ella no saldrá ningún email de recordatorio.

El módulo añade un menú Pedidos — Pedidos recurrentes compuesto por tres pantallas: la lista de programaciones, el historial de envíos y la configuración.

Configurar el planificador

El módulo debe ejecutarse una vez al día. Una sola ejecución diaria basta: el planificador procesa en una pasada todas las programaciones que han llegado a su vencimiento.

Por URL

La página de configuración del módulo muestra la URL exacta, token incluido. Tiene este aspecto:

https://su-tienda.tld/module/dfrecurringorder/cron?token=SU_TOKEN

Esta URL funciona con el módulo oficial Tareas cron de PrestaShop, con un servicio de cron externo o desde una crontab de servidor:

0 6 * * * wget -q -O - "https://su-tienda.tld/module/dfrecurringorder/cron?token=SU_TOKEN"

Por línea de comandos

Es el método recomendado en un servidor dedicado: evita los tiempos de espera del servidor web.

0 6 * * * php /ruta/a/tienda/modules/dfrecurringorder/cli/run.php --token=SU_TOKEN

La opción --id_shop=N limita la ejecución a una sola tienda en contexto multitienda. Sin ella se procesan todas las tiendas.

Comprobar que funciona

La página de configuración ofrece un botón Ejecutar el planificador ahora. Lanza una pasada inmediata y muestra un informe: programaciones procesadas, emails enviados y fallos. La llamada por URL devuelve el mismo informe en formato JSON.

El token puede regenerarse en cualquier momento desde la configuración. Recuerde actualizar entonces su crontab, de lo contrario las llamadas siguientes serán rechazadas.

Configuración del módulo

Experiencia del cliente

  • Permitir a los clientes crear sus programaciones — muestra el botón «Programar este pedido» en el detalle del pedido y en la página de confirmación. Desactívelo si prefiere crear las programaciones usted mismo desde el back office.
  • Número máximo de programaciones por cliente — 0 para ilimitado. El valor predeterminado es 20.
  • Intervalo mínimo en días — impide crear programaciones demasiado próximas entre sí.

Frecuencias disponibles

Cada frecuencia se activa o desactiva de forma independiente: diaria, semanal, quincenal, mensual, bimestral, trimestral, semestral, anual y personalizada en días. Solo aparecen en el formulario del cliente las frecuencias activadas.

De forma predeterminada están activas la semanal, quincenal, mensual, bimestral, trimestral, semestral y anual. La diaria y el intervalo personalizado están desactivados, ya que responden sobre todo a casos B2B específicos.

Emails y enlace de pago

  • Enviar el email X días antes del vencimiento — valor predeterminado aplicado a las nuevas programaciones. El cliente puede ajustarlo para la suya. Tres días es un buen punto de partida: lo bastante pronto para reaccionar, lo bastante tarde para seguir presente.
  • Duración de validez del enlace de pago — en días, 14 por defecto. Pasado ese plazo el enlace muestra un mensaje de caducidad e invita al cliente a regenerar uno desde su cuenta.
  • Ignorar los productos no disponibles — activado por defecto. Consulte la sección de casos particulares.
  • Enviar una copia al comerciante — útil durante el rodaje para comprobar cómo se ven realmente los emails.

Planificador

  • Programaciones procesadas por ejecución — 50 por defecto. Auméntelo si su volumen diario supera ese límite, o lance el cron varias veces al día.
  • Eliminar todos los datos al desinstalar — desactivado por defecto. Consulte la sección Desinstalación.

Lado cliente: programar un pedido

El recorrido parte siempre de un pedido ya realizado, lo que garantiza que productos, dirección y transportista sean coherentes.

  1. El cliente abre uno de sus pedidos desde su historial, o permanece en la página de confirmación justo después de una compra.
  2. Hace clic en Programar este pedido.
  3. Ajusta las cantidades si es necesario. Una cantidad fijada a 0 retira el producto de la programación.
  4. Elige su frecuencia, la fecha de su próximo pedido y, si lo desea, una fecha de fin o un número máximo de pedidos.
  5. Guarda. Un email de confirmación resume la programación.

La programación aparece después en Mi cuenta — Mis pedidos programados. Desde esa pantalla el cliente puede en todo momento:

  • modificar la frecuencia, la fecha o las cantidades;
  • pausar y luego reactivar, recalculándose entonces el próximo vencimiento hacia el futuro;
  • eliminar definitivamente la programación;
  • hacer clic en Pedir ahora para lanzar su carrito de inmediato sin esperar al vencimiento.

Lado comerciante: seguir las programaciones

Lista de pedidos recurrentes

Muestra para cada programación el cliente, la frecuencia, el número de productos, el próximo vencimiento, cuántos emails se han enviado, cuántos pedidos se han realizado realmente y el estado. La columna de pedidos es la medida más útil: indica cuántas programaciones se convierten efectivamente en facturación.

La ficha detallada de una programación permite enviar el enlace de pago al cliente de inmediato, algo práctico en soporte cuando un cliente indica no haber recibido su email.

Historial de envíos

Cada enlace generado da lugar a una línea de historial cuyo estado evoluciona a lo largo del recorrido:

  • Enviado — el email ha salido, el enlace aún no se ha abierto.
  • Enlace abierto — el cliente ha hecho clic y se ha construido un carrito.
  • Convertido en pedido — el carrito se ha convertido en pedido. La referencia queda vinculada automáticamente.
  • Caducado — la validez ha expirado sin pedido.
  • Error — el envío del email ha fallado. Revise la configuración de correo de la tienda.

En la ficha de pedido

Un panel al pie de la ficha de pedido lista las programaciones creadas a partir de ese pedido, con acceso directo a su detalle.

Cómo funciona el enlace de pago

Entender este mecanismo ayuda a responder a las preguntas de sus clientes.

  1. Al enviar el email, el módulo no crea ningún carrito. Solo genera un token aleatorio de 48 caracteres, de un solo uso y con marca temporal.
  2. Cuando el cliente hace clic, el módulo verifica el token y su fecha de caducidad.
  3. Si el cliente no ha iniciado sesión, se le redirige a la página de acceso estándar y después se le devuelve automáticamente a su enlace. El enlace nunca autentica al visitante por sí mismo.
  4. Una vez identificado, el carrito se construye a partir de la programación, con los precios, promociones, reglas de carrito y existencias del momento.
  5. Se le redirige al proceso de compra. Un segundo clic en el mismo enlace reutiliza el carrito ya creado mientras no se haya convertido en pedido.

Precisamente porque el carrito se construye al hacer clic, y no al enviar, siempre es correcto. Un carrito pregenerado en el momento del email sería erróneo en cuanto un precio, una promoción o una existencia cambiara entretanto.

Casos particulares

Producto no disponible en el vencimiento

Con la opción Ignorar los productos no disponibles activada, el producto afectado simplemente se descarta y el resto de artículos siguen siendo pedibles. El carrito solo se rechaza si no hay ningún producto disponible: el cliente ve entonces un mensaje que le invita a contactar con usted o a modificar su programación.

Si desactiva esta opción, una rotura bloquea la reconstitución del carrito. Este comportamiento conviene a las tiendas cuyos pedidos deben salir completos o no salir.

Dirección eliminada entre dos vencimientos

Si el cliente ha eliminado la dirección de entrega registrada en la programación, el módulo cambia automáticamente a su primera dirección disponible. La dirección de facturación sigue la misma lógica. El cliente siempre puede cambiar de dirección en el proceso de compra.

Finales de mes

Una programación mensual iniciada un 31 de enero no se desvía. El módulo ajusta la fecha al último día del mes cuando este es más corto: el 28 o 29 de febrero, luego el 31 de marzo. El día de origen queda memorizado, por lo que nunca se pierde.

Multitienda

Cada programación está vinculada a la tienda en la que se creó. Los emails salen con la identidad de esa tienda y el enlace de pago apunta a su dominio.

Fin de una programación

Una programación termina automáticamente cuando se supera la fecha de fin o cuando se alcanza el número máximo de pedidos. Pasa entonces al estado Terminada y deja de enviar emails, permaneciendo consultable en el historial.

Personalizar los emails

El módulo incluye dos plantillas, en francés e inglés, cada una en versión HTML y texto:

  • dfro_reminder — el recordatorio enviado antes de cada vencimiento, con el enlace de pago.
  • dfro_created — la confirmación enviada al crear una programación.

Se pueden editar desde Diseño — Tema y logotipo — Emails, o directamente en la carpeta mails/ del módulo. Las variables disponibles en el recordatorio son: nombre y apellidos del cliente, etiqueta y frecuencia de la programación, fecha del próximo pedido, tabla de productos, total estimado, enlace de pago, enlace de gestión, duración de validez del enlace y nombre de la tienda.

El total mostrado en el email es una estimación calculada en el momento del envío, a título orientativo. El importe realmente facturado es el del carrito reconstruido al hacer clic. No presente nunca ese total como un compromiso de precio.

Resolución de problemas

No se envía ningún email

Compruebe por este orden: que la tarea programada se ejecuta, que el token de la crontab coincide con el mostrado en la configuración, que al menos una programación activa ha alcanzado su vencimiento, y que la tienda puede enviar emails. El botón Ejecutar el planificador ahora aísla rápidamente el problema: si envía los emails, la culpable es la tarea programada.

El enlace muestra «Enlace no válido»

El token no existe o ha sido truncado por el cliente de correo. Regenere un enlace desde la ficha de la programación en el back office.

El cliente entra en bucle en la página de acceso

Esto ocurre cuando el enlace se abre con una cuenta distinta a la del destinatario. El cliente debe cerrar sesión y volver a abrir el enlace.

El carrito reconstruido está vacío

Todos los productos de la programación están desactivados o agotados. Revise su estado en el catálogo, o desactive temporalmente la opción de exclusión de productos no disponibles para hacer explícito el diagnóstico.

Desinstalación

De forma predeterminada, la desinstalación conserva las tablas y las programaciones. Una reinstalación posterior recupera por tanto todos los datos. Para eliminarlo todo, active la opción Eliminar todos los datos al desinstalar antes de desinstalar el módulo.

Esta eliminación es definitiva y afecta a las programaciones, sus líneas de productos y el historial completo de envíos. Haga una copia de seguridad de su base de datos antes de activarla.

¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte