Backoffice-Audit-Log — Vollständige Anleitung
Installieren, konfigurieren und betreiben Sie das Backoffice-Audit-Log: Nachvollziehbarkeit von Erstellungen/Änderungen/Löschungen mit Vorher/Nachher-Diff, Anmeldeprotokollierung, Maskierung sensibler Felder, Aufbewahrung und CSV-Export für PrestaShop 8 und 9.
Überblick
Das Modul Backoffice-Audit-Log protokolliert, wer was und wann in Ihrem PrestaShop-Backoffice geändert hat. Für jede Erstellung, Änderung oder Löschung bewahrt es den beteiligten Mitarbeiter, sein Profil, die IP-Adresse, den Controller, die HTTP-Methode, die URL, den Zeitstempel und – bei Änderungen – das feldweise Detail (alter Wert → neuer Wert). Es protokolliert außerdem den Sitzungsbeginn jedes Mitarbeiters und, unter PrestaShop 8, fehlgeschlagene Anmeldeversuche und Abmeldungen.
Das Modul stützt sich ausschließlich auf die nativen ObjectModel-Hooks und nimmt keinerlei Core-Override vor. Es ist kompatibel mit PrestaShop 8 und 9, im Einzel- und Mehrshop-Betrieb sowie mehrsprachig.
Das Protokoll ist für Sicherheit und DSGVO-Konformität konzipiert: Es liefert eine zuverlässige Audit-Spur (Rechenschaftspflicht und Nachvollziehbarkeit der Verarbeitung), ohne die Funktionsweise Ihres Shops zu verändern.
Installation
- Öffnen Sie im Backoffice Module > Modul-Manager.
- Klicken Sie auf Modul hochladen und legen Sie das ZIP-Archiv des Moduls ab.
- Klicken Sie nach Abschluss der Installation auf Konfigurieren.
Bei der Installation erstellt das Modul zwei dedizierte Tabellen (das Protokoll und das Detail der geänderten Felder), registriert seine Hooks und fügt den Menüeintrag Erweiterte Parameter > Audit-Log hinzu. Für den Einstieg ist keine Konfiguration erforderlich: Ein passendes Set an Entitäten ist standardmäßig bereits aktiviert.
Funktionsweise
Das Modul lauscht auf die generischen ObjectModel-Hooks von PrestaShop 8 und 9 (Objekt anlegen, ändern und löschen) sowie auf den Anzeige-Hook des Backoffice. Bei jeder Operation an einer überwachten Entität:
- identifiziert es den angemeldeten Mitarbeiter, sein Profil und den aktiven Shop;
- bei einer Änderung vergleicht es den Zustand vorher und nachher und speichert nur die tatsächlich geänderten Felder;
- bei einer Erstellung oder Löschung speichert es (optional) alle Felder des Objekts;
- es schreibt den Eintrag direkt in die Datenbank.
Die Schreibvorgänge erfolgen in direktem SQL, ohne erneut über ObjectModel zu laufen: Es besteht daher kein Risiko einer Hook-Rekursion, und das Audit kann niemals einen Geschäftsvorgang unterbrechen.
Konfiguration
Überwachte Entitäten
Markieren Sie die zu protokollierenden Entitäten, gruppiert nach Bereich: Katalog (Produkte, Kategorien, Hersteller, Lieferanten, Kombinationen, Sonderpreise, Bilder, Bestand…), Kunden & Bestellungen (Bestellungen, Bestellstatus, Kunden, Adressen, Gruppen, Warenkorbregeln), Versand & Lokalisierung (Transporteure, Länder, Zonen, Währungen, Steuern), Inhalte (CMS-Seiten und -Kategorien, Metadaten) und Verwaltung & Sicherheit (Mitarbeiter, Profile, Webservice-Schlüssel, Shops, Konfiguration).
Nur die markierten Entitäten werden protokolliert. Standardmäßig ist ein passendes, wenig gesprächiges Set aktiviert; die Konfiguration ist standardmäßig deaktiviert, da sie sehr gesprächig ist.
BO-Anmeldungen protokollieren
Wenn diese Option aktiv ist, protokolliert das Modul den Sitzungsbeginn jedes Mitarbeiters. Unter PrestaShop 8 protokolliert es zusätzlich fehlgeschlagene Anmeldeversuche (mit der eingegebenen E-Mail) und Abmeldungen.
Unter PrestaShop 9 wird die Login-Seite von Symfony verwaltet: Erfolgreiche Anmeldungen werden protokolliert, fehlgeschlagene Versuche und Abmeldungen auf dem Login-Bildschirm werden jedoch nicht erfasst. Alle Datenänderungen bleiben auf beiden Versionen nachvollziehbar.
Detail von Erstellungen/Löschungen aufbewahren
Aktiviert die Aufzeichnung aller Felder bei einer Erstellung oder Löschung. Deaktivieren Sie diese Option, um nur das Ereignis (wer, was, wann) ohne das vollständige Detail des Objekts aufzubewahren.
Auch Aktionen außerhalb des Backoffice protokollieren
Standardmäßig werden nur Aktionen protokolliert, die von einem im Backoffice angemeldeten Mitarbeiter ausgeführt werden. Aktivieren Sie diese Option, um auch Änderungen zu protokollieren, die im Front-Office, durch eine CRON-Aufgabe oder über den Webservice ausgelöst werden. Das Eintragsvolumen kann dann deutlich steigen.
Aufbewahrung
Legen Sie die Aufbewahrungsdauer in Tagen fest (standardmäßig 365). Eine automatische tägliche Bereinigung entfernt ältere Einträge. Stellen Sie den Wert auf 0 für unbegrenzte Speicherung.
Ausgeschlossene Mitarbeiter
Geben Sie die Mitarbeiter-IDs (durch Kommas getrennt) ein, deren Aktionen nicht protokolliert werden sollen — zum Beispiel ein technisches Integrationskonto.
Volumengrenzen
Zwei Einstellungen schützen die Datenbank: die maximale Anzahl an Feldern pro Eintrag und die maximale Länge eines Werts (darüber hinaus wird der Wert gekürzt). Eine interne Schutzvorrichtung begrenzt zudem die Anzahl der pro Anfrage geschriebenen Einträge, um die Leistung bei Massenimporten zu erhalten.
Das Protokoll einsehen
Gehen Sie zu Erweiterte Parameter > Audit-Log. Die Liste zeigt für jeden Eintrag: Datum, Aktionstyp (farbiges Abzeichen), Entität, Objekt-ID und -Bezeichnung, Anzahl der geänderten Felder, Mitarbeiter, Profil, IP-Adresse und Controller. Sie können nach diesen Spalten filtern und sortieren.
Detailansicht
Klicken Sie auf einen Eintrag, um seine Detailansicht zu öffnen. Sie zeigt den vollständigen Kontext (Mitarbeiter, IP, Controller, Methode, URL, User-Agent) und bei einer Änderung eine feldweise Differenztabelle: den alten Wert (auf rosafarbenem Hintergrund, durchgestrichen) und den neuen (auf grünlichem Hintergrund).
Sicherheit sensibler Daten
Sensible Felder werden niemals im Klartext gespeichert. Jedes Feld, dessen Name einen sensiblen Begriff enthält (Passwort, secure_key, Token, API-Schlüssel, Webservice-Schlüssel…), wird automatisch durch Sternchen ersetzt. Das Protokoll vermerkt, dass sich ein sensibles Feld geändert hat, ohne dessen Wert preiszugeben.
Konformität, Aufbewahrung und Export
Das Protokoll bewahrt den Namen des Mitarbeiters auch nach dessen Löschung auf und garantiert so eine dauerhafte Audit-Spur. Über den Protokollbildschirm erzeugt die Schaltfläche Als CSV exportieren eine UTF-8-Datei (Excel-kompatibel) mit allen Spalten: Datum, Aktion, Entität, Objekt, Mitarbeiter, Profil, IP, Controller, Methode und URL. Die Schaltfläche Bereinigen entfernt alle Einträge (eine Aktion, die Profilen mit Löschberechtigung vorbehalten ist).
Der CSV-Export ist ideal, um Ihre Audit-Nachweise einem Datenschutzbeauftragten, einem Prüfer oder einem Sicherheitsverantwortlichen vorzulegen.
Deinstallation
Die Deinstallation entfernt die Protokolltabellen, die gesamte Historie, die Hooks und den Menüeintrag. Dieser Vorgang ist endgültig: Denken Sie daran, das Protokoll vorher zu exportieren, wenn Sie eine Aufzeichnung davon behalten müssen.
FAQ
Verlangsamt das Modul das Backoffice?
Die Auswirkung ist minimal: Schreibvorgänge in direktem SQL, Filterung nach Entität und eine Volumen-Schutzvorrichtung. Sie können die Last weiter reduzieren, indem Sie die überwachten Entitäten einschränken.
Werden Passwörter gespeichert?
Nein. Sensible Felder werden vor der Speicherung mit Sternchen maskiert.
Ändert das Modul den PrestaShop-Kern?
Nein, kein Override. Das Modul verwendet ausschließlich die offiziellen ObjectModel-Hooks und einen internen Autoloader.
Werden Front-Office-Aktionen protokolliert?
Standardmäßig nein: Das Protokoll konzentriert sich auf Mitarbeiteraktionen im Backoffice. Sie können die Protokollierung von Front-Office-, CRON- und Webservice-Aktionen in der Konfiguration aktivieren.
Ist das Modul mit PrestaShop 9 kompatibel?
Ja, kompatibel mit PrestaShop 8.x und 9.x, im Einzel- und Mehrshop-Betrieb sowie mehrsprachig.