RecordatorioImpagos: El motor de envío (cómo decide y cuándo)
Esta publicación explica cómo trabaja el plugin por dentro: cuándo se ejecuta, cómo calcula el retraso, cómo elige qué correo enviar y por qué nunca duplica avisos. No necesitas saberlo para usarlo, pero ayuda a entender qué esperar.
Cuándo se ejecuta
El plugin declara una tarea que se ejecuta una vez al día, a la hora que hayas configurado. Esa tarea la dispara el cron de FacturaScripts, así que tu servidor debe estar llamando periódicamente a:
php index.php -cron
- Con el cron cada pocos minutos, el envío es puntual a la hora fijada.
- Con el cron cada hora, el ciclo arranca en la primera pasada tras la hora fijada.
- Aunque el cron pase muchas veces al día, el ciclo de recordatorios se ejecuta una sola vez: el propio sistema de tareas de FacturaScripts lleva el control.
También puedes lanzarlo manualmente en cualquier momento con el botón Ejecutar motor ahora, en la ficha de cualquier secuencia. Esa ejecución manual sí se lanza siempre (es una acción explícita tuya), pero respeta el interruptor maestro y el anti-duplicado.
Qué facturas mira
En cada ciclo, el plugin recorre todas las facturas de venta no pagadas (por lotes, para no cargar de golpe todo el histórico). De cada una, comprueba en este orden y omite la factura si:
- Está en borrador / boceto (solo se reclaman facturas ya emitidas).
- El cliente no tiene el seguimiento activado.
- El cliente no tiene secuencia asignada, o la secuencia está inactiva.
- El cliente no tiene un email válido.
- La factura no tiene ningún recibo vencido sin pagar todavía.
Cómo calcula los días de retraso
Un detalle importante: el retraso no se cuenta desde la fecha de la factura, sino desde el vencimiento del recibo. En FacturaScripts, la fecha de vencimiento vive en los recibos de la factura, no en la factura en sí (una factura puede tener varios vencimientos). El plugin toma el recibo no pagado más antiguo y cuenta los días desde su vencimiento hasta hoy. Así, los {dias_retraso} que ves en los correos son los reales.
Cómo elige qué correo enviar
De todos los pasos de la secuencia del cliente, el motor elige como mucho uno por factura y ciclo, siguiendo estas reglas:
- No retrocede en el tono. Nunca envía un paso de orden igual o inferior a uno que ya mandó para esa factura. Una vez enviado el "firme", no volverá al "cordial".
- Pasos por días de vencimiento: elige el que corresponde según el retraso acumulado y el modo de puesta al día (ver Configuración general). En el modo recomendado, si la factura ya está muy vencida, salta directamente al aviso acorde a su antigüedad.
- Pasos por días desde el anterior: si ya se envió algún aviso y han pasado los días indicados desde el último, envía ese paso. Con Repetir activado, se vuelve a mandar cada X días mientras la deuda siga viva.
Por qué nunca duplica
Cada envío correcto queda anotado en el historial (tabla de recordatorios enviados). El motor consulta ese historial antes de decidir, así que:
- No reenvía un paso ya enviado para esa factura.
- Sabe cuál fue el último aviso y cuándo, para calcular los pasos "desde el anterior".
- Si un ciclo se corta por el tope de envíos, lo que no salió esta vez saldrá en el siguiente ciclo sin reenviar nada de lo ya mandado.
Qué envía
Cada recordatorio es un email al cliente con:
- El asunto y el cuerpo de la plantilla del paso, con los marcadores ya sustituidos.
- El PDF de la factura adjunto (se genera al vuelo y se borra del servidor tras enviarlo).
- Una copia oculta (BCC) a administración, si la has configurado.
Tanto los envíos correctos como los fallidos quedan registrados en el historial con su resultado (OK o ERROR). Un fallo puntual en una factura (por ejemplo, un problema al generar el PDF) se registra como error y no interrumpe el resto del ciclo: las demás facturas se siguen procesando.
Siguiente paso: Historial de envíos.