WordPress y WooCommerce

cómo facturar automáticamente las inscripciones a cursos LMS desde WooCommerce

¿Por qué la inscripción y la facturación del LMS no están sincronizadas después del pago

Los equipos que venden cursos en línea a través de WooCommerce más LearnDash, Tutor LMS o LifterLMS a menudo dividen el cumplimiento en tres escritorios. El pago captura el pago. Alguien en operaciones abre el pedido, copia el correo electrónico del comprador en la lista del LMS y asigna el producto del curso que se asigna a un SKU pago. Por otra parte, Finanzas vuelve a escribir al mismo comprador en Fakturownia, wFirma, Comarch Optima u otra pila de facturación porque el recibo de la tienda no es una factura fiscal en su país. Esa doble entrada se produce cuando se conceden asientos sin un documento o se emiten documentos con un número de identificación fiscal incorrecto mientras el estudiante espera el acceso. El modo de falla no es raro. Los SKU combinados que desbloquean dos cursos, los puestos corporativos comprados por un gerente de compras para cinco empleados y los pedidos de renovación de productos de suscripción rompen con los ingenuos supuestos de "una línea de pedido equivale a una inscripción". Los reembolsos y reembolsos parciales lo empeoran: el LMS todavía muestra acceso activo mientras contabilidad ya emitió una factura correctiva, o sucede lo contrario y el estudiante pierde el acceso antes de que finanzas cierre la nota de crédito. Luego, el soporte pasa la tarde reconciliando tres sistemas que nunca compartieron una ID de correlación. Las hojas de cálculo manuales ocultan el retraso hasta la fecha de inicio de la cohorte. Si cincuenta inscripciones llegan a una promoción el lunes por la mañana, las operaciones no pueden seguir el ritmo de los pedidos pagados, por lo que los estudiantes envían correos electrónicos "Pagué, ¿dónde está mi curso?", mientras que Finanzas todavía está procesando facturas el viernes. El riesgo comercial son las devoluciones de cargo y las disputas similares cuando el comprador puede probar el pago pero no puede probar que se le concedió el acceso dentro de un plazo razonable. La automatización se justifica cuando el volumen de inscripción excede regularmente lo que una persona puede liquidar el mismo día sin errores, y cuando la numeración de las facturas debe ser continua para la oficina de impuestos. Los creadores de cursos también tropiezan cuando un curso gratuito de interés para clientes potenciales se encuentra junto a cohortes pagas en el mismo LMS. El personal reutiliza accidentalmente el gancho del producto pago para obtener el SKU gratuito, lo que factura documentos sin sentido de valor cero o inscribe a estudiantes pagados en la secuencia de goteo incorrecta. Otra brecha frecuente son las cohortes dirigidas por instructores con una fecha de inicio fija: los estudiantes pueden pagar semanas antes, por lo que el acceso debe programarse en lugar de abrirse de inmediato, mientras que finanzas aún necesita la factura en la fecha de pago. Esa división entre la fecha fiscal y la fecha de acceso debe codificarse explícitamente o el soporte inventa excepciones únicas en cada lanzamiento. La localización es importante para el IVA. Un comprador polaco con un NIP válido espera una factura fiscal elaborada para la oficina de impuestos, mientras que una empresa registrada en el IVA de la UE puede necesitar anotaciones de inversión del sujeto pasivo. Si la automatización siempre emite un documento estilo recibo de venta minorista, finanzas rehace el trabajo a mano y pierde confianza en la cola. Capture la clase de impuestos y el tipo de comprador al finalizar la compra, páselos sin cambios y rechace inventar reglas de país dentro del complemento LMS.

cuando un pedido pagado de WooCommerce debería crear una factura de inscripción a LMS

Active el flujo de trabajo cuando un pedido de WooCommerce alcance un estado pagado que su tienda considera final para productos digitales: normalmente en proceso o completado, dependiendo de si mantiene los pedidos virtuales en proceso hasta que finalicen los procesos de cumplimiento. También escuche los pagos de renovación de suscripción si el curso se vende como un producto de suscripciones de WooCommerce y el estado de administrador manual cambia de en espera a procesamiento después de que se liquida una transferencia bancaria. No se inscriba ni facture pagos pendientes o fallidos. Para los campos de pago B2B, espere hasta que la validación del ID de IVA haya sido exitosa o haya sido renunciada explícitamente por un rol del personal; de lo contrario, facturará un nombre de empresa como marcador de posición que Finanzas deberá anular más adelante. Incluya capturas parciales de pasarelas de pago solo cuando la configuración de su tienda trate el pedido como pagado para entrega digital. Ignore las notas de pedido y los permisos de descarga del cliente como activadores; esos son demasiado ruidosos. Si utiliza una plataforma de aprendizaje fuera de WordPress que aún factura a través de WooCommerce, trate la API de inscripción externa como el paso LMS pero mantenga la misma puerta de estado pago.

cómo inscribir al estudiante y emitir la factura en una sola automatización

  1. Asigne cada línea de pedido pagado a un curso LMS o ID de grupo utilizando una tabla de SKU mantenida, incluidos los paquetes principales que se expanden a múltiples ID de cursos y cantidades de asientos para productos corporativos.
  2. Cree o actualice el usuario estudiante en WordPress, adjunte la inscripción o la membresía del grupo y almacene el ID del pedido de WooCommerce más el ID del artículo de línea en el meta de inscripción de LMS para que los reembolsos puedan revertir el mismo asiento.
  3. Cree la carga útil de la factura a partir de los campos de facturación, ID de IVA y clase impositiva; envíalo a Fakturownia, wFirma, Optima o tu API de contabilidad; escriba el número de factura remota y la URL del PDF nuevamente en el meta del pedido.
  4. Envíe por correo electrónico al estudiante un mensaje único que incluya el enlace de inicio de sesión del curso y el archivo adjunto de la factura o la descarga segura, utilizando el mismo ID de correlación tanto en el LMS como en los registros contables.
  5. En los webhooks de reembolso o cancelación de suscripción, revoque o programe la finalización de la inscripción de acuerdo con la política, solicite una factura correctiva o nota de crédito y notifique a finanzas si la API de documentos remotos rechaza la corrección.
  6. Ponga en cola una conciliación nocturna que enumere los pedidos digitales pagados a los que les falta una metaclave de inscripción o un número de factura para que las operaciones puedan borrar las excepciones antes del siguiente correo electrónico de cohorte.
  7. Cuando el acceso deba esperar una fecha de inicio de cohorte, escriba un trabajo programado del Programador de acciones que otorgue el puesto de LMS en la marca de tiempo de inicio y al mismo tiempo emita la factura en el momento del pago.

Sistemas

  • WooCommerce
  • LearnDash / Tutor LMS
  • Fakturownia / wFirma
  • Comarch Optima

Herramientas

  • Action Scheduler
  • WooCommerce webhooks
  • n8n
  • REST APIs

flujo de datos desde el pago de WooCommerce hasta el asiento del LMS y el documento contable

WooCommerce sigue siendo la fuente comercial de verdad para el estado de pagos. Un trabajo de webhook o Programador de acciones publica el ID del pedido en n8n o en un oyente PHP personalizado. El oyente carga líneas de pedido, resuelve asignaciones de SKU a curso desde una tabla de opciones o Google Sheet reflejada en wp_options y llama a la API de inscripción de LMS o a las funciones de unión de grupos de LearnDash dentro de WordPress cuando sea posible para que las comprobaciones de capacidad permanezcan locales. La creación de facturas suele salir de WordPress: REST a Fakturownia o wFirma para comerciantes individuales y pequeñas empresas polacas, o una exportación en cola a Comarch Optima / enova cuando el equipo de contabilidad rechaza el SaaS de facturación en la nube. Prefiera n8n cuando los sistemas financieros cambian con frecuencia; Prefiera Action Scheduler más un pequeño complemento cuando deba mantener secretos e inscripciones dentro del tiempo de ejecución de WP. Cada salto escribe el mismo order_id y un fulfilment_id generado en los registros para que el soporte pueda buscar una clave en LMS, tienda y contabilidad. Conservar una máquina de estado de cumplimiento en el pedido: pagado_recibido, inscrito, facturado, notificado, reconciliado_ok. Exponga esos estados a una tabla de lista de administración simple para que las operaciones no necesiten acceso n8n. Cuando Optima está involucrado, muchos equipos escriben una tabla de preparación que el integrador de Optima sondea; no bloquee el correo electrónico del estudiante en la ventana por lotes de Optima. En su lugar, marque Billed_pending_erp y deje que Finanzas complete la numeración, sin dejar de mostrarle al estudiante una confirmación comercial. Los datos personales deben alinearse con el encargo de tratamiento y criterios de la AEPD. La contabilidad puede vivir en el ERP o en Holded/FacturaDirecta en lugar de un SaaS genérico.

qué hacer cuando la inscripción se realiza correctamente pero la API de factura falla

Si la llamada de inscripción al LMS falla después del pago, no emita la factura todavía; Vuelva a intentarlo con retraso, luego abra una alerta de Slack o por correo electrónico con el enlace del pedido y deje el pedido en un estado personalizado de "error de cumplimiento" para que los paneles estilo almacén también puedan ver fallas digitales. Si la inscripción se realiza correctamente y la API de factura devuelve 4xx debido a un ID de IVA incorrecto, conserve el asiento, marque el meta factura_error del pedido y diríjase a finanzas sin bloquear al estudiante. Si la API de factura tiene éxito pero la recuperación del PDF falla, almacene la ID remota y vuelva a intentar descargar el PDF por separado. Descarte cualquier trabajo anterior a su SLA y nunca se inscriba automáticamente en un segundo webhook de pago para el mismo order_id sin una clave de idempotencia. Los webhooks duplicados desde la puerta de enlace son normales. Controle todos los efectos secundarios en un registro de idempotencia codificado por order_id más el nombre de la capacidad (inscripción versus factura). Si un estudiante ya tiene acceso de por vida al curso a partir de una compra anterior, omita la reinscripción pero aún así facture el nuevo pedido comercial si se trata de un SKU pagado por separado, como un complemento de capacitación. Documente esa rama para que el soporte no trate la inscripción omitida como un error.

cuando la facturación manual LMS sigue siendo más barata que la automatización

Omita esta versión cuando venda menos de aproximadamente veinte plazas de cursos al mes, emita facturas a mano en menos de diez minutos cada una y nunca realice lanzamientos de cohortes de ese volumen. Omita también cuando cada venta sea un contrato corporativo personalizado ya facturado en Optima antes de que un administrador de cuentas otorgue el puesto de LMS. La automatización que combate un proceso de facturación negociado por humanos crea documentos duplicados y equipos financieros enojados. Los departamentos de aprendizaje corporativo que facturan a través de acuerdos marco anuales en enova y solo usan WooCommerce como fachada de catálogo no deben forzar las facturas de tienda por puesto a través de este flujo. Utilice una transferencia para financiar en lugar de documentos minoristas falsos.

KPI para la automatización de la facturación de inscripción en LMS

  • Minutos medios desde el pedido pagado hasta la meta de inscripción en LMS escrita
  • Proporción de pedidos digitales pagados con ID de inscripción y número de factura dentro de las 24 horas
  • Recuento de pedidos con errores de cumplimiento vencidos por encima de su SLA de soporte
  • Reembolsos en los que el acceso permaneció activo más de una hora después de la nota de crédito

Calculadora de ROI de automatización

Introduce ejecuciones al mes, minutos por ejecución y tu coste horario cargado. El resultado es una simulación, no un presupuesto de nuestro trabajo.

Horas = ejecuciones × minutos / 60 × recuperación %. Valor del tiempo = horas × tarifa × realización %. Errores evitados = ejecuciones × error % × coste del error × realización %. Neto = suma − mantenimiento. Retorno = implantación / neto, solo si neto > 0.

Horas recuperadas / mes: -

Horas recuperadas / año: -

Valor del tiempo / mes: -

Coste de errores evitado / mes: -

Neto / mes: -

Retorno (meses): -

Resultado del primer año: -

¿Debería realizarse primero la factura o la inscripción al LMS?#
Inscríbase primero cuando el producto sea un curso puramente digital y las devoluciones de cargo sean menos frecuentes que los estudiantes enojados que esperan acceso. Facturar primero cuando la normativa o política interna prohíbe otorgar un servicio pago sin un documento numerado. La mayoría de las tiendas se inscriben primero, luego facturan y mantienen una cola de excepción financiera para fallas en el IVA.
¿Cómo se asignan los paquetes y asientos corporativos a las facturas?#
Facture el SKU comercial que compró el cliente, no cada curso secundario, como un documento separado, a menos que Finanzas requiera una línea por curso para el reconocimiento de ingresos. El meta de inscripción aún debe expandir los elementos secundarios para que se otorgue cada ID de curso. Los puestos corporativos necesitan un campo de cantidad en el grupo de inscripción, no cinco pedidos duplicados.
¿Qué pasa con las órdenes de transferencia bancaria que permanecen en espera?#
No se inscriba en espera. Se activa solo cuando el personal o una regla de coincidencia automatizada mueve el pedido a procesamiento o se completa después de que se ve la transferencia. La inscripción prematura en transferencias bancarias impagas es una fuga de ingresos común en los LMS.
¿Puede la misma automatización manejar cursos gratuitos y pagos?#
Utilice tipos de productos separados o una marca no_invoice en SKU gratuitos. Los cursos gratuitos deben inscribirse sin llamar a la API de contabilidad. Mezclarlos en un gancho de producto es como aparecen las facturas de valor cero y las puertas de pago accidentales.

¿Necesitas un FAQ adaptado a tu sector y mercado? Preparamos una versión alineada con tus objetivos de negocio.

Hablemos

Casos relacionados