Two main building blocks. (1) SAP-side ABAP development and OData services: 5 new OData entities (Order, Shipment, Invoice, Customer, KPI), each exposed through the Gateway. ABAP customizing produces an audit-trail table for every write operation. (2) Next.js admin UI with TypeScript and Tailwind: 6 primary views (Daily ops, Shipments, Invoices, KPI, Audit, Settings), role-based access control (NextAuth + Microsoft Entra ID SSO).
Integration runs over REST/OData; the admin UI calls SAP via serverless API routes. Reads are cached 5–15 minutes (data freshness is acceptable, SAP can't be overloaded). Writes are direct pass-through with audit logging.