Firmenkonten, Budgets & Genehmigungen in Magento 2
Ein belastbares Firmenkonten‑Modul in Magento 2 benötigt klare Entitäten, saubere Service‑Contracts und schlanke UI‑Muster. Ziel ist Flexibilität, Sicherheit und Performance – mit realen Unternehmensstrukturen, Budgetkontrollen und Genehmigungsworkflows.
Kernarchitektur: Firmenstruktur
Entitäten & Service‑Contracts
- Company: Firmenkonto mit Stammdaten, Kreditinfos, Betreuern. Verwaltung via `CompanyRepositoryInterface`.
- CompanyUser: Verknüpft `CustomerInterface` mit Company‑Kontext. Verwaltung via `CompanyUserManagementInterface`.
- Rollen & Rechte (RBAC): Granulare Berechtigungen (z. B. `CAN_VIEW_ORDERS`, `CAN_PLACE_ORDER_ABOVE_LIMIT`, `CAN_MANAGE_USERS`) zu frei definierbaren Rollen bündeln – kein Hardcoding.
UI‑Muster
Admin‑Dashboard im Konto: Benutzergrid, Berechtigungsmatrix, Einladungen. Session wird beim Login um Company‑Kontext/Rechte angereichert; UI rendert abhängig davon.
Budgets & Ausgabenkontrollen
Entitäten & Services
- Budget: Zuweisbar an Company/Rolle/User; Felder: `limit_amount`, `timeframe` (monatlich/vierteljährlich/jährlich), `start_date`, `current_spend`.
- BudgetValidationServiceInterface: zentrale Prüfung, z. B. `isWithinBudget(Quote $quote)`; wendet restriktivste Grenze an (User/Rolle/Company).
UI & Integration
"Budgets" im Firmendashboard pflegen. Im Checkout Budget per AJAX gegen Service prüfen; bei Überschreitung CTA deaktivieren und verständlich begründen.
Genehmigungsregeln
Entitäten & Services
- ApprovalRule: Felder: `priority`, `applies_to_role_ids`, `approver_role_ids`, `threshold_amount` (min/max) – z. B. "> 10 000 € von Managern → Director genehmigt".
- ApprovalQueue: Quote auf `pending_approval` sperren statt echte Order; Eintrag in Queue.
UI & Integration
Plugin (`aroundPlaceOrder` auf `CartManagementInterface`) fängt Bestellung ab, bewertet Regeln und leitet ggf. in die Approval‑Queue um. "Orders to Approve"‑Grid für Genehmiger. Events wie `order_approval_required`/`order_approved` für Benachrichtigung/Integrationen.
Purchase Orders & Kostenstellen
- PO & Cost Center: Als Extension Attributes an `Quote`/`Order` (Felder `po_number`, `cost_center`). Optionale `CostCenter`‑Entität durch Company‑Admin pflegbar.
Audit, Performance & Rollout
Audit‑Trail
`AuditLog`‑Entität für Rollenänderungen, Budgetänderungen, Genehmigungen, Einladungen. Observer (after‑Methoden) befüllen Log.
APIs & Performance
Alle Services via REST/SOAP veröffentlichen. Rechte/Budgetdaten cachen; Benachrichtigungen asynchron (Queues) ausführen.
Rollout & Tests
Pilot‑Kunden auswählen; KPIs: Time‑to‑Approval, Budget‑Nutzung, Abbrüche wegen Approval. Automatisierte Tests für alle Kombinationen aus Rechten, Budgets und Regeln.
