Automatización de Matrículas y Facturación

La funcionalidad más potente de MoodleManagement es la automatización del ciclo completo: un cliente compra un curso en FacturaScripts y el alumno se matricula automáticamente en Moodle. Esta guía explica cómo funciona cada parte del proceso.

El flujo completo El ciclo típico es:

  1. El administrador crea un presupuesto o pedido con un producto vinculado a un curso Moodle
  2. El sistema crea automáticamente una matrícula en estado "pendiente" (pre-matrícula)
  3. El presupuesto se convierte en factura
  4. Al marcar la factura como pagada, el sistema matricula automáticamente al alumno en Moodle
  5. La matrícula pasa a estado "matriculado" y queda vinculada a la factura Para que este flujo funcione, se necesitan tres condiciones:
    • El producto debe estar vinculado a un curso Moodle (relación producto-curso creada al importar)
    • El contacto del cliente debe estar mapeado con un usuario Moodle (relación contacto-usuario)
    • La instancia Moodle debe estar activa y con conexión funcional

Pre-matrícula (presupuestos y pedidos) Cuando se crea un presupuesto o un pedido de venta que contiene productos vinculados a cursos Moodle:

  1. El PreEnrolmentWorker detecta el evento
  2. Identifica los productos de tipo curso en las líneas del documento
  3. Busca el contacto del cliente en los mapeos de usuario Moodle
  4. Crea un registro MoodleEnrolment con estado "pendiente"
  5. Vincula la matrícula con el documento comercial (presupuesto o pedido) Las pre-matrículas permiten llevar un control de los alumnos que han solicitado un curso antes de que se formalice el pago. El alumno NO se matricula en Moodle en esta fase.

Matrícula automática (facturas pagadas) Cuando una factura se marca como pagada:

  1. El EnrolmentWorker detecta el evento
  2. Busca las líneas de factura con productos vinculados a cursos
  3. Para cada producto-curso:
    • Localiza el mapeo del contacto con su usuario Moodle
    • Localiza el mapeo del curso con la instancia Moodle
    • Llama a la API de Moodle (enrol_manual_enrol_users) para matricular al alumno
    • Actualiza el registro MoodleEnrolment a estado "matriculado"
    • Vincula la matrícula con la factura
  4. Si existía una pre-matrícula pendiente para ese alumno y curso, la actualiza en vez de crear una nueva

Estados de matrícula Cada matrícula puede estar en uno de estos estados:

  • Pendiente: pre-matrícula creada desde presupuesto/pedido. El alumno aún no tiene acceso al curso en Moodle.
  • Matriculado: matrícula activa. El alumno tiene acceso al curso en Moodle.
  • Suspendido: matrícula temporalmente desactivada. El alumno no puede acceder al curso pero su progreso se conserva.
  • Desmatriculado: matrícula eliminada. El alumno pierde acceso y puede perder su progreso según la configuración de Moodle.

Métodos de matrícula soportados MoodleManagement soporta varios métodos de matrícula de Moodle:

  • Manual: el método estándar, utilizado por la automatización de facturas
  • Auto-matrícula (self): el alumno se matricula a sí mismo, opcionalmente con contraseña
  • Pago (payment): matrícula mediante pasarela de pago de Moodle
  • Cohort: matrícula automática por pertenencia a una cohort
  • Meta-enlace (meta): matrícula automática por estar matriculado en otro curso

Meta-matrículas Las meta-matrículas permiten que la matrícula en un curso se propague automáticamente a otros cursos. Esto es útil para paquetes de cursos:

  • Desde la ficha de un curso Moodle, puede crear meta-enlaces hacia otros cursos
  • Cuando un alumno se matricula en el curso principal, automáticamente se matricula en los cursos enlazados
  • Al desmatricular del curso principal, se desmatricula de los enlazados

Vinculación con documentos comerciales Cada matrícula puede estar vinculada a un documento comercial de FacturaScripts:

  • Facturas: vinculación principal, creada automáticamente al pagar
  • Pedidos: vinculación de pre-matrícula
  • Presupuestos: vinculación de pre-matrícula Esto permite trazabilidad completa: desde la matrícula puede acceder al documento comercial y viceversa.

Suspensión y eliminación automática Cuando se elimina un contacto en FacturaScripts que está mapeado con un usuario Moodle:

  1. El ContactDeleteWorker detecta la eliminación
  2. Suspende la cuenta del usuario en Moodle (no la elimina)
  3. Suspende todas sus matrículas activas
  4. Esto protege los datos del alumno en Moodle mientras se impide el acceso

Control de expiración El cron de control de expiración (cada 6 horas):

  1. Revisa todas las matrículas activas que tienen fecha de fin configurada
  2. Las matrículas que vencen en los próximos 7 días se marcan internamente para seguimiento
  3. Las matrículas con fecha de fin pasada se actualizan automáticamente a estado expirado
  4. Este proceso es útil para cursos con duración limitada (ej: acceso por 3 meses tras la compra)

Reconciliación diaria El proceso de reconciliación verifica la integridad de los datos una vez al día:

  1. Para cada mapeo de usuario, consulta a Moodle si el usuario sigue existiendo
  2. Para cada matrícula activa, verifica que la matrícula sigue activa en Moodle
  3. Si encuentra discrepancias (ej: un usuario fue eliminado directamente en Moodle), actualiza el registro en FS
  4. Genera un log de las discrepancias encontradas

Esto garantiza que FacturaScripts siempre refleje el estado real de Moodle, incluso si se realizan cambios directamente en la plataforma.

Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.
Copyright (c) 2013-2026 FacturaScripts
0.0559s

Soporte