Ensina Mais e-commerce
Learning material sales for the ZeroHum and ZH+ networks, from the Transforma Educação holding
Online store, point of sale at the schools and back-office for the Ensina Mais publishing house. Each family sees only the right product for the student's class. The system integrates payments (Asaas), ERP and invoicing (Bling) and the school system.
The problem
The Ensina Mais publishing house sells learning materials to the students' parents. Each product depends on the unit, the class, the school year and the delivery batch, and sales happen online and at the school front desks. Everything has to work with the school system, the payment gateway and the ERP.
The solution
- Personalized catalog: based on the active enrollment, each family sees only the product for the student's class, cached in Redis.
- A point of sale for the school offices, with split payments across several methods, and a back-office with reports, coupons, contracts and invoicing.
- Overdue debt negotiation flow with interest and late fee rules and payment links.
- Bank slip and abandoned cart reminders with n8n.
Architecture
Microservices in Node.js and TypeScript behind a gateway with central authentication and rate limiting, with separate MySQL databases per domain. Orders whose payment needs background processing go to a RabbitMQ queue that is consumed in batches, and a scheduler runs the routines without duplicate executions.
- Payments with Asaas: bank slip (boleto), PIX, card, installments and subscriptions.
- Bling as the ERP, with batch issuing of NF-e (Brazilian electronic invoices), reprocessing and job tracking.
- Automatic import of students, parents and classes from ActiveSoft, in dependency order.
Problems it solves
Sales
The right product for each student
Problem
The product changes with the unit, the year, the class and the batch.
How the system solves it
Each family sees only the product for the student's class.
Finance and integrations
Sale, billing and invoice in one flow
Problem
Each sale becomes a charge, an order and an invoice in separate systems.
How the system solves it
A confirmed payment updates the ERP and issues the invoice.