Audit Log - Admin-Änderungsprotokoll
Audit Log für dein Shopware-Backend: Du siehst, welcher Admin wann Produkte, Bestellungen oder Kunden geändert hat, auf Wunsch mit altem und neuem Wert für jedes Feld.
Auf dieser Seite
- Einleitung
- Was du mit diesem Plugin erreichst
- Für wen ist dieses Plugin?
- Installation
- Erste Schritte
- Einstellungen
- Detailgrad
- Erfasste Entitäten
- Integrations-/API-Key-Aktionen protokollieren
- Aufbewahrungsfrist (Tage)
- Maximale Anzahl Einträge
- IP-Adresse erfassen
- IP-Adresse anonymisieren
- So nutzt du das Audit Log
- So öffnest du das Protokoll
- So liest du die Liste
- So filterst du nach Benutzer, Bereich oder Zeitraum
- So siehst du, was genau geändert wurde
- Warum du Einträge nicht löschen oder ändern kannst
- Berechtigungen vergeben
- Datenschutz und Löschersuchen
- So setzt du das Plugin datenschutzgerecht ein
- So entfernst du die Einträge eines Kunden bei einem Löschersuchen
- Was das Plugin nicht erfasst
- Fehlerbehebung
- Nach einer Änderung erscheint kein neuer Eintrag
- Der Eintrag „Audit Log” fehlt unter Einstellungen → Erweiterungen
- Das Detailfenster zeigt „Keine Felddetails”
- Alte Einträge werden nicht gelöscht
- Über der Liste steht „Die automatische Bereinigung hinkt hinterher”
- Die Filter „Von” und „Bis” liefern unerwartete Ergebnisse
- FAQ
- Für Administratoren / Technische Details
- Systemanforderungen
- Verarbeitung großer Datenmengen
- Entwurfsversionen
- Obergrenze per Konsole setzen
- Status für die Überwachung
- Löschbefehl für einzelne Datensätze
- Installation über die Kommandozeile
- Deinstallation
Einleitung
Audit Log - Admin-Änderungsprotokoll zeigt dir jederzeit, wer in deiner Shopware-Administration was geändert hat und wann.
Was du mit diesem Plugin erreichst
- Du siehst für jede Änderung an Produkten, Bestellungen, Kunden, Benutzern und Rollen, wer sie vorgenommen hat, wann das war und ob etwas angelegt, geändert oder gelöscht wurde.
- Auf Wunsch siehst du zu jeder Änderung die konkreten Werte vorher und nachher – etwa, dass der Lagerbestand von 29 auf 12 gesenkt wurde.
- Du findest Änderungen schnell über Filter nach Benutzer, Bereich, Art der Änderung und Zeitraum.
- Die Einträge sind unveränderbar: Niemand kann sie in der Administration oder über die Schnittstelle bearbeiten oder löschen – auch kein Administrator.
- Du legst selbst fest, wie lange die Einträge aufbewahrt werden und wie groß das Protokoll höchstens werden darf; ältere Einträge räumt das Plugin täglich automatisch weg.
- Datenschutz ist eingebaut: IP-Adressen werden nur auf Wunsch gespeichert und dann gekürzt, Kennwörter und Schlüssel landen nie im Protokoll.
Für wen ist dieses Plugin?
Für Shop-Betreiber mit mehreren Personen im Backend – Agenturen, Teams mit Aushilfen oder Redakteuren, Shops mit ERP- oder Warenwirtschaftsanbindung –, die nachvollziehen wollen, woher eine Preis-, Bestands- oder Kundenänderung stammt.
Das Plugin ist ein reines Werkzeug für die Administration. In deinem Shop sehen Kunden davon nichts.
Installation
Nach dem Kauf steht dir das Plugin direkt in deiner Administration zur Verfügung – du musst nichts herunterladen.
- Melde dich in deiner Shopware-Administration an (
DeinShop.de/admin). - Öffne Erweiterungen → Meine Erweiterungen.
- Klicke neben Audit Log - Admin-Änderungsprotokoll auf Installieren.
- Aktiviere das Plugin über den Schalter links neben dem Eintrag – fertig.
Abb. 1: Das Plugin ist installiert und aktiv. Über „Konfigurieren” öffnest du die Einstellungen.
Taucht Audit Log - Admin-Änderungsprotokoll nicht in der Liste auf, ist dein Shopware-Account noch nicht mit dem Shop verbunden. Das erledigst du unter Erweiterungen → Meine Erweiterungen über die Anmeldung mit deinem Shopware-Konto.
Ab der Aktivierung protokolliert das Plugin mit den Standardeinstellungen. Du musst nichts weiter einrichten, damit es wirkt.
Erste Schritte
-
Einstellungen öffnen: Klicke unter Erweiterungen → Meine Erweiterungen beim Plugin auf Konfigurieren.
Abb. 2: Oben in der Konfiguration findest du den Button „Dokumentation öffnen” und die Hinweise zum Datenschutz. -
Datenschutzhinweis lesen: Der blaue Kasten Hinweise zum Datenschutz erklärt, was du vor dem Einsatz klären solltest. In Deutschland kann die Protokollierung von Mitarbeiteraktivitäten mitbestimmungspflichtig sein – informiere Betriebsrat und Team, bevor du das Plugin produktiv nutzt.
-
Das Wichtigste einstellen: Entscheide beim Detailgrad, ob du die konkreten Wertänderungen sehen willst oder nur, wer wann was geändert hat. Prüfe die Aufbewahrungsfrist (Tage) – standardmäßig sind es 90 Tage.
-
Speichern klicken.
-
Ergebnis prüfen: Ändere testweise den Lagerbestand eines Produkts und öffne danach Einstellungen → Erweiterungen → Audit Log. Dort erscheint deine Änderung als neuer Eintrag.
Mit dem Button Dokumentation öffnen rufst du diese Anleitung jederzeit direkt aus der Konfiguration auf.
Einstellungen
Die Einstellungen findest du unter Erweiterungen → Meine Erweiterungen → Konfigurieren. Sie sind in zwei Karten gegliedert: Protokollierung und Aufbewahrung & Datenschutz.
Abb. 3: Erfasste Entitäten, Integrations-Schalter und die Karte „Aufbewahrung & Datenschutz” mit Aufbewahrungsfrist und maximaler Anzahl Einträge.
Gut zu wissen: Oben auf der Konfigurationsseite zeigt Shopware wie bei jedem Plugin die Auswahl Verkaufskanal. Für dieses Plugin spielt sie keine Rolle. Das Audit Log protokolliert Arbeit in der Administration, und die gehört zu keinem Verkaufskanal. Stelle die Werte deshalb unter Alle Verkaufskanäle ein – Werte für einen einzelnen Kanal werden nicht berücksichtigt.
Detailgrad
Mit Detailgrad legst du fest, wie ausführlich ein Eintrag ist.
- Feld-Diff (vorher/nachher) – Voreinstellung. Zu jeder Änderung werden die geänderten Felder mit altem und neuem Wert gespeichert. So siehst du etwa, von welchem auf welchen Preis ein Produkt gesetzt wurde.
- Nur Metadaten – Es wird nur gespeichert, wer wann welchen Datensatz angelegt, geändert oder gelöscht hat. Die Werte selbst landen nicht im Protokoll. Das ist schlanker und datenschutzschonender.
Wozu das gut ist: Brauchst du die Werte zur Fehlersuche oder als Nachweis, bleib bei „Feld-Diff”. Willst du möglichst wenige personenbezogene Daten speichern, wähle „Nur Metadaten”.
Wichtig: Bei „Feld-Diff” bleibt beim Löschen eines Datensatzes mit personenbezogenen Daten – etwa eines Kunden – dessen letzter Stand bis zum Ablauf der Aufbewahrungsfrist im Protokoll. Wie du solche Einträge gezielt entfernst, steht in Datenschutz und Löschersuchen.
Erfasste Entitäten
Unter Erfasste Entitäten wählst du aus, welche Bereiche protokolliert werden. Die Liste liest das Plugin automatisch aus deinem Shop aus, auch Bereiche anderer Plugins erscheinen dort. Die Einträge tragen die technischen Namen, die Shopware intern verwendet, zum Beispiel product für Produkte oder order für Bestellungen.
Lässt du das Feld leer (Anzeige Entitäten auswählen…), gelten die Standardwerte:
- Produkte (
product) - Bestellungen (
order) - Kunden (
customer) - Admin-Benutzer (
user) - Rollen und Berechtigungen (
acl_role)
Wozu das gut ist: Du protokollierst genau das, was für dich relevant ist. Weitere Bereiche wie Kategorien oder Versandarten nimmst du einfach dazu. Wählst du selbst Bereiche aus, gelten nur diese – willst du die Standardbereiche behalten, wähle sie mit aus.
Integrations-/API-Key-Aktionen protokollieren
Mit Integrations-/API-Key-Aktionen protokollieren werden zusätzlich Änderungen erfasst, die über eine Integration kommen – etwa aus deiner Warenwirtschaft, einem ERP oder einem Import-Werkzeug. Standardmäßig ist der Schalter aus; dann protokolliert das Plugin nur Änderungen angemeldeter Admin-Benutzer.
Wozu das gut ist: Schalte ihn ein, wenn du nachvollziehen willst, ob eine Preis- oder Bestandsänderung von einer Person oder von einer angebundenen Software stammt. Bei Integrationen mit sehr vielen Änderungen wächst das Protokoll entsprechend schneller.
Aufbewahrungsfrist (Tage)
Mit Aufbewahrungsfrist (Tage) legst du fest, wie lange Einträge aufbewahrt werden. Voreingestellt sind 90 Tage, möglich sind 1 bis 180 Tage – länger als sechs Monate darf ein Protokoll nach den Shopware-Vorgaben nicht aufbewahrt werden. Einmal täglich löscht das Plugin automatisch alle Einträge, die älter sind. Damit das klappt, muss dein Shop die geplanten Aufgaben von Shopware ausführen – das richtet in der Regel dein Hoster oder deine IT ein. Wann zuletzt bereinigt wurde, siehst du direkt über der Liste im Audit Log (siehe So liest du die Liste).
Zusätzlich kannst du unter Maximale Anzahl Einträge eine Obergrenze festlegen (siehe unten).
Wozu das gut ist: Eine kurze Frist hält das Protokoll schlank und entspricht dem Grundsatz der Datensparsamkeit. Eine längere Frist brauchst du, wenn du Änderungen auch nach Monaten noch belegen musst. Stimme die Frist am besten mit deinem Datenschutzbeauftragten ab.
Maximale Anzahl Einträge
Mit Maximale Anzahl Einträge legst du fest, wie groß das Protokoll höchstens werden darf. Liegen mehr Einträge vor, löscht die tägliche Bereinigung die ältesten – unabhängig von der Aufbewahrungsfrist. Voreingestellt ist 0: Dann gibt es keine Obergrenze, und es gilt allein die Aufbewahrungsfrist.
Wozu das gut ist: Bei sehr vielen Änderungen – etwa wenn du Integrationen protokollierst und deine Warenwirtschaft täglich Tausende Produkte aktualisiert – wächst das Protokoll schnell. Mit einer Obergrenze bleibt es auch dann überschaubar und belastet die Datenbank deines Shops nicht unbegrenzt.
Wichtig: Die Obergrenze kann Einträge entfernen, die nach der Aufbewahrungsfrist noch bleiben sollten. Brauchst du Änderungen über einen festen Zeitraum als Nachweis, wähle die Obergrenze großzügig oder lass sie auf 0.
IP-Adresse erfassen
Mit IP-Adresse erfassen speichert das Plugin zu jedem Eintrag die IP-Adresse, von der aus die Änderung vorgenommen wurde. Standardmäßig ist der Schalter aus.
Wozu das gut ist: Die IP-Adresse hilft bei der Aufklärung, wenn du einen fremden Zugriff vermutest. Sie ist aber ein personenbezogenes Datum deiner Mitarbeiter – schalte sie nur ein, wenn du dafür einen Grund und eine Rechtsgrundlage hast.
IP-Adresse anonymisieren
Mit IP-Adresse anonymisieren wird die IP-Adresse vor dem Speichern gekürzt: Bei IPv4 entfällt der letzte Zahlenblock, bei IPv6 bleibt nur der Netzanteil erhalten. Der Schalter ist standardmäßig eingeschaltet und wirkt nur, wenn IP-Adresse erfassen aktiv ist.
Wozu das gut ist: Du erkennst weiterhin, aus welchem Netz eine Änderung kam, ohne einzelne Geräte eindeutig zuordnen zu können.
So nutzt du das Audit Log
So öffnest du das Protokoll
Was dir das bringt: Alle protokollierten Änderungen an einem Ort, die neuesten zuerst.
Öffne Einstellungen und klicke im Bereich Erweiterungen auf Audit Log.
Abb. 4: Das Audit Log findest du unter Einstellungen → Erweiterungen.
Siehst du den Eintrag nicht, fehlt deinem Benutzer das Leserecht. Wie du es vergibst, steht in Berechtigungen vergeben.
So liest du die Liste
Was dir das bringt: Du siehst auf einen Blick, wer zuletzt woran gearbeitet hat.
Abb. 5: Ganz oben die Protokollgröße, darunter die Karte „Filter” und die protokollierten Änderungen.
Jede Zeile ist eine Änderung an einem Datensatz. Die Spalten bedeuten:
- Zeitpunkt – Datum und Uhrzeit der Änderung.
- Benutzer – der Admin-Benutzer, der gespeichert hat. Wurde der Benutzer inzwischen gelöscht, bleibt sein Name im Eintrag erhalten. Steht dort Unbekannt, war kein Benutzername verfügbar.
- Entität – der Bereich, zum Beispiel
product,orderodercustomer. - Datensatz-ID – die interne Kennung des geänderten Datensatzes.
- Operation – Angelegt (grün), Geändert (blau) oder Gelöscht (rot).
Die Liste zeigt 25 Einträge je Seite; weitere Seiten erreichst du über die Seitennavigation unter der Tabelle. Mit einem Klick auf die Spaltenüberschrift Zeitpunkt, Benutzer, Entität oder Operation sortierst du danach. Ein weiterer Klick kehrt die Reihenfolge um.
Tipp: Neue Einträge erscheinen nicht in derselben Sekunde. Das Plugin schreibt sie im Hintergrund, damit das Speichern in der Administration nicht langsamer wird. Meist sind sie wenige Sekunden später sichtbar – lade die Liste dann einfach neu.
Die Protokollgröße über der Liste
Was dir das bringt: Du siehst sofort, wie groß das Protokoll ist und ob die automatische Bereinigung zuverlässig läuft.
Ganz oben auf der Seite, über der Karte Filter, steht ein Hinweiskasten mit dem Titel Protokollgröße. Er fasst in einer Zeile zusammen:
- wie viele Einträge das Protokoll insgesamt enthält, zum Beispiel 755 Einträge – unabhängig von den Filtern,
- von wann der älteste Eintrag stammt (ältester vom …),
- die eingestellte Aufbewahrung, etwa Aufbewahrung 90 Tage,
- die Obergrenze, falls du unter Maximale Anzahl Einträge eine eingestellt hast (Obergrenze … Einträge),
- wann die automatische Bereinigung zuletzt gelaufen ist (letzte Bereinigung …). Ist sie noch nie gelaufen, steht dort noch keine Bereinigung gelaufen.
Liegen Einträge vor, die nach deinen Einstellungen schon gelöscht sein müssten, wird aus dem Kasten eine Warnung mit dem Titel Die automatische Bereinigung hinkt hinterher. Darunter steht: „Es liegen Einträge vor, die laut Konfiguration bereits gelöscht sein müssten. Meist führt der Server keine geplanten Aufgaben aus: Prüfen Sie, ob der Message-Worker (bin/console messenger:consume) und der Scheduled-Task-Runner (bin/console scheduled-task:run) laufen.” Das Plugin lässt dabei zwei Tage Spielraum, damit eine kurz verzögerte Bereinigung keinen Fehlalarm auslöst. Was du dann tust, steht in Fehlerbehebung.
Tipp: Erscheint stattdessen die Meldung „Der Status des Audit Logs konnte nicht geladen werden.”, fehlt nur der Kasten – die Liste selbst funktioniert weiter. Lade die Seite neu.
So filterst du nach Benutzer, Bereich oder Zeitraum
Was dir das bringt: Du findest gezielt die Änderung, die du suchst – etwa „Wer hat gestern Produkte geändert?”.
- Trage in der Karte Filter die gewünschten Einschränkungen ein:
- Entität: der Bereich, zum Beispiel
product. Es genügt der Anfang des Namens. - Operation: Angelegt, Geändert oder Gelöscht. Ohne Auswahl gelten Alle Operationen.
- Benutzer: ein bestimmter Admin-Benutzer. Ohne Auswahl gelten Alle Benutzer.
- Von und Bis: der Zeitraum. Beachte den Hinweis UTC unter den Feldern – die Zeiten beziehen sich auf die koordinierte Weltzeit, in der deutschen Sommerzeit also zwei Stunden früher als deine Uhr.
- Entität: der Bereich, zum Beispiel
- Klicke auf Anwenden.
Abb. 6: Nur noch Änderungen an Produkten werden angezeigt. Die Protokollgröße oben zählt weiterhin alle Einträge.
Mit Zurücksetzen entfernst du alle Filter wieder.
So siehst du, was genau geändert wurde
Was dir das bringt: Du erkennst, welche Werte vorher galten und was jetzt gilt – ohne in Backups oder Datenbanken suchen zu müssen.
- Klicke in der gewünschten Zeile rechts auf die drei Punkte.
- Wähle Details anzeigen.
Abb. 7: Oben die Angaben zum Eintrag, unten die Feldänderungen. Hier wurde der Lagerbestand von 29 auf 12 gesenkt und eine EAN nachgetragen.
Das Fenster Audit-Log-Eintrag zeigt:
- Zeitpunkt, Benutzer, Entität, Datensatz-ID, Operation und Protokolltyp.
- Request-URI – die Adresse der Anfrage, über die gespeichert wurde.
- IP-Adresse – nur, wenn du die IP-Erfassung eingeschaltet hast.
- Integrations-ID – nur, wenn die Änderung von einer Integration kam.
- Unter Feldänderungen eine Tabelle mit Feld, Vorher und Nachher.
Die Feldnamen erscheinen so, wie Shopware sie intern speichert – zum Beispiel stock für den Lagerbestand oder ean für die EAN. War ein Feld vorher leer, steht dort (leer). Schützenswerte Felder wie Kennwörter oder Zugangsschlüssel sind mit geschützt markiert; ihr Wert wird nie gespeichert.
Bei einer Löschung zeigt die Tabelle den letzten Stand des Datensatzes. Im Detailgrad Nur Metadaten erscheint statt der Tabelle Keine Felddetails.
Mit Schließen kehrst du zur Liste zurück.
Warum du Einträge nicht löschen oder ändern kannst
Das Audit Log ist bewusst nur lesbar. In der Liste gibt es keine Schaltfläche zum Bearbeiten, Anlegen oder Löschen. Auch über die Schnittstelle der Administration weist Shopware jeden Versuch ab, einen Eintrag zu ändern oder zu löschen – das gilt ausdrücklich auch für Administratoren und Integrationen. Nur so ist das Protokoll ein belastbarer Nachweis.
Einträge verschwinden trotzdem, und zwar auf genau drei Wegen:
- Automatisch durch die tägliche Bereinigung – nach Ablauf der Aufbewahrungsfrist (Tage) oder, wenn du eine Maximale Anzahl Einträge eingestellt hast, sobald das Protokoll darüber liegt.
- Gezielt für einen einzelnen Datensatz, etwa bei einem Löschersuchen nach DSGVO. Das erledigt ein Administrator mit Serverzugang über einen Konsolenbefehl – siehe Datenschutz und Löschersuchen.
- Vollständig beim Deinstallieren des Plugins, wenn du dabei die Plugin-Daten nicht behältst.
Berechtigungen vergeben
Was dir das bringt: Du entscheidest, wer das Protokoll lesen darf – zum Beispiel nur Geschäftsführung und Datenschutzbeauftragter.
Administratoren sehen das Audit Log immer. Für alle anderen Benutzer gibt es genau ein Recht: Audit Log → Ansehen. Ein Recht zum Bearbeiten, Anlegen oder Löschen gibt es absichtlich nicht.
- Öffne Einstellungen → System → Benutzer & Rechte.
- Lege mit Rolle erstellen eine neue Rolle an oder öffne eine bestehende.
- Setze in der Liste der Berechtigungen in der Gruppe Andere beim Eintrag Audit Log den Haken in der Spalte Ansehen.
- Klicke auf Speichern und weise die Rolle den gewünschten Benutzern zu.
Abb. 8: Das Leserecht für das Audit Log steht in der Gruppe „Andere”.
Das Recht blendet für die Rolle den Eintrag Audit Log unter Einstellungen → Erweiterungen ein und erlaubt das Lesen der Einträge samt der Protokollgröße über der Liste. Die Benutzerliste im Filter Benutzer ist darin eingeschlossen.
Datenschutz und Löschersuchen
Das Plugin protokolliert Handlungen deiner Mitarbeiter. Damit verarbeitest du personenbezogene Daten deines Teams – und im Detailgrad Feld-Diff unter Umständen auch Daten deiner Kunden.
So setzt du das Plugin datenschutzgerecht ein
- Mitarbeiter informieren: Kläre vor dem Einsatz Rechtsgrundlage und Zweck. In Deutschland kann die Protokollierung mitbestimmungspflichtig sein; beziehe den Betriebsrat ein, falls es einen gibt.
- Aufbewahrungsfrist bewusst wählen: Nur so lange wie nötig. Die tägliche Bereinigung setzt die Frist automatisch um – vorausgesetzt, dein Shop führt die geplanten Aufgaben aus. Ob sie läuft, zeigt dir die Protokollgröße über der Liste (siehe So liest du die Liste).
- IP-Adressen nur bei Bedarf: Die Erfassung ist standardmäßig aus. Schaltest du sie ein, lass IP-Adresse anonymisieren eingeschaltet.
- Detailgrad prüfen: Mit Nur Metadaten werden keine Feldwerte gespeichert, also auch keine Kundendaten.
- Geheimnisse bleiben draußen: Kennwörter, Tokens und Zugangsschlüssel speichert das Plugin in keinem Detailgrad.
So entfernst du die Einträge eines Kunden bei einem Löschersuchen
Löschst du einen Kunden in Shopware, bleibt im Detailgrad Feld-Diff sein letzter Stand bis zum Ablauf der Aufbewahrungsfrist im Protokoll. Verlangt jemand nach Art. 17 DSGVO die Löschung seiner Daten, entfernst du die zugehörigen Protokolleinträge gezielt.
Das geschieht bewusst nicht in der Administration, sondern über einen Konsolenbefehl auf dem Server. So bleibt das Protokoll für Benutzer der Administration unveränderbar. Gib die Aufgabe an deinen Administrator oder deine Agentur weiter:
-
Kennung des Kunden ermitteln: In der Audit-Log-Liste nach Entität
customerfiltern, den Eintrag öffnen und die Datensatz-ID notieren. -
Erst zählen, nichts löschen:
bin/console swp:audit-log:purge-entity customer <Datensatz-ID> --dry-run -
Einträge löschen:
bin/console swp:audit-log:purge-entity customer <Datensatz-ID>Der Befehl fragt vor dem Löschen nach einer Bestätigung. Mit
--forcelöscht er ohne Rückfrage, etwa in einem Skript.
Wichtig: Der Befehl entfernt nur die Einträge genau dieses einen Datensatzes. Zugehörige Daten mit eigener Kennung – zum Beispiel die Adressen eines Kunden (Entität
customer_address, falls du sie protokollierst) – haben eigene Einträge und werden mit ihrer eigenen Datensatz-ID einzeln entfernt.
Das Löschen ist endgültig und lässt sich nicht rückgängig machen.
Was das Plugin nicht erfasst
Damit du das Protokoll richtig einordnest, hier die bewussten Grenzen:
- Nur Arbeit in der Administration und über die Admin-Schnittstelle. Bestellungen und Kontoänderungen, die Kunden im Shop selbst vornehmen, erscheinen nicht. Ebenso wenig Änderungen durch Konsolenbefehle, geplante Aufgaben oder Shopware selbst im Hintergrund.
- Integrationen nur auf Wunsch. Ohne den Schalter Integrations-/API-Key-Aktionen protokollieren fehlen Änderungen aus Warenwirtschaft, ERP oder Importen.
- Übersetzbare Texte nicht als Feldänderung. Texte, die in Shopware je Sprache gespeichert werden – etwa Produktname oder Beschreibung –, erscheinen nicht in den Feldänderungen eines Produkts.
- Keine abgebrochenen Bearbeitungen. Öffnest du eine Bestellung in der Administration zum Bearbeiten und brichst ab, ohne zu speichern, entsteht kein Eintrag. Erst gespeicherte Änderungen erscheinen – ebenso wie ein Statuswechsel, etwa auf „Abgebrochen” – als Geändert.
- Nur ausgewählte Bereiche. Was nicht unter Erfasste Entitäten steht (bzw. nicht zu den Standardbereichen gehört), wird nicht protokolliert.
- Kein Zurücksetzen. Das Plugin zeigt alte Werte an, stellt sie aber nicht wieder her. Willst du einen alten Wert zurück, trägst du ihn im jeweiligen Datensatz von Hand ein.
- Kein Export. Die Einträge lassen sich in der Administration ansehen und filtern, aber nicht als Datei exportieren.
Fehlerbehebung
Nach einer Änderung erscheint kein neuer Eintrag
Woran es liegt: Das Plugin schreibt Einträge im Hintergrund über die Nachrichtenwarteschlange von Shopware. Läuft diese nicht, bleiben die Einträge liegen. Oder der geänderte Bereich wird nicht protokolliert.
So behebst du es:
- Warte einige Sekunden und lade die Liste neu.
- Prüfe unter Erfasste Entitäten, ob der Bereich protokolliert wird.
- Kam die Änderung von einer Integration, prüfe den Schalter Integrations-/API-Key-Aktionen protokollieren.
- Bleiben Einträge dauerhaft aus, bitte deinen Administrator zu prüfen, ob die Nachrichtenwarteschlange des Shops verarbeitet wird (siehe Für Administratoren / Technische Details).
Der Eintrag „Audit Log” fehlt unter Einstellungen → Erweiterungen
Woran es liegt: Das Plugin ist nicht aktiv oder deinem Benutzer fehlt das Recht Audit Log → Ansehen.
So behebst du es:
- Prüfe unter Erweiterungen → Meine Erweiterungen, ob das Plugin aktiv ist.
- Lass dir das Recht zuweisen (siehe Berechtigungen vergeben).
- Melde dich einmal ab und wieder an.
Das Detailfenster zeigt „Keine Felddetails”
Woran es liegt: Der Eintrag entstand im Detailgrad Nur Metadaten, oder es wurden nur Felder geändert, die nicht als Feldänderung erfasst werden (siehe Was das Plugin nicht erfasst).
So behebst du es: Stelle den Detailgrad auf Feld-Diff (vorher/nachher). Das wirkt für alle künftigen Änderungen; bestehende Einträge bleiben, wie sie sind.
Alte Einträge werden nicht gelöscht
Woran es liegt: Die geplanten Aufgaben des Shops laufen nicht.
So behebst du es: Bitte deinen Administrator zu prüfen, ob die geplanten Aufgaben ausgeführt werden. Wann zuletzt bereinigt wurde, zeigt dir die Protokollgröße über der Liste.
Über der Liste steht „Die automatische Bereinigung hinkt hinterher”
Woran es liegt: Im Protokoll liegen Einträge, die nach deiner Aufbewahrungsfrist (Tage) oder deiner Obergrenze unter Maximale Anzahl Einträge längst gelöscht sein müssten. Fast immer führt der Server die geplanten Aufgaben von Shopware nicht aus. Dann läuft die tägliche Bereinigung nicht, und das Protokoll wächst immer weiter.
So behebst du es:
- Bitte deinen Hoster, deine IT oder deine Agentur, die Hintergrundverarbeitung von Shopware einzurichten. Nötig sind die beiden Dienste, die der Hinweis im Kasten nennt: der Message-Worker (
bin/console messenger:consume) und der Scheduled-Task-Runner (bin/console scheduled-task:run). Details stehen in Für Administratoren / Technische Details. - Lass deine Einstellungen, wie sie sind. Sobald die Bereinigung wieder läuft, arbeitet sie auch einen großen Rückstand selbstständig ab. Bei sehr vielen Einträgen kann das einige Zeit dauern.
- Lade die Liste später neu. Ist die Warnung verschwunden und zeigt letzte Bereinigung ein aktuelles Datum, ist alles wieder in Ordnung.
Die Filter „Von” und „Bis” liefern unerwartete Ergebnisse
Woran es liegt: Die Zeiten in den Filtern beziehen sich auf UTC.
So behebst du es: Rechne deine Ortszeit um – in Deutschland im Winter eine Stunde, im Sommer zwei Stunden früher – oder wähle den Zeitraum etwas großzügiger.
FAQ
F: Können Administratoren Einträge löschen, um Spuren zu verwischen?
A: Nein. Weder in der Administration noch über die Schnittstelle lassen sich Einträge ändern oder löschen, auch nicht mit Administratorrechten. Einträge verschwinden nur durch die Aufbewahrungsfrist, den Löschbefehl auf dem Server oder beim Deinstallieren ohne Datenerhalt.
F: Wird mein Shop durch die Protokollierung langsamer?
A: Nein, spürbar nicht. Die Einträge werden im Hintergrund geschrieben. Auch große Importe werden in Paketen verarbeitet.
F: Wie verhindere ich, dass das Protokoll zu groß wird?
A: Mit zwei Einstellungen: Die Aufbewahrungsfrist (Tage) löscht Einträge nach einer festen Zeit, die Maximale Anzahl Einträge begrenzt zusätzlich die Größe. Wie groß das Protokoll gerade ist, siehst du über der Liste im Audit Log.
F: Sehe ich, wer einen Kunden gelöscht hat?
A: Ja. Die Löschung erscheint mit Benutzer, Zeitpunkt und der Operation Gelöscht. Im Detailgrad Feld-Diff siehst du zusätzlich den letzten Stand des Kunden.
F: Was passiert, wenn ich einen Admin-Benutzer lösche?
A: Seine bisherigen Einträge bleiben erhalten, sein Benutzername steht weiter in der Spalte Benutzer.
F: Kann ich einen alten Wert mit einem Klick wiederherstellen?
A: Nein. Das Plugin dokumentiert, es stellt nichts zurück. Den alten Wert liest du im Detailfenster ab und trägst ihn im Datensatz neu ein.
F: Kann ich die Einträge exportieren?
A: Nein, einen Export gibt es nicht.
F: Muss ich das Plugin für jeden Verkaufskanal einstellen?
A: Nein. Das Plugin arbeitet unabhängig von Verkaufskanälen. Stelle alles unter Alle Verkaufskanäle ein.
F: Was passiert mit den Einträgen, wenn ich das Plugin deinstalliere?
A: Behältst du beim Deinstallieren die Plugin-Daten, bleiben die Einträge in der Datenbank erhalten. Andernfalls werden alle Einträge endgültig gelöscht.
Für Administratoren / Technische Details
Dieser Abschnitt richtet sich an technische Administratoren. Für die normale Nutzung brauchst du ihn nicht.
Systemanforderungen
- Shopware: 6.7
- PHP: 8.2 oder neuer
- Nachrichtenwarteschlange: Die Einträge werden asynchron geschrieben. Es muss ein Worker laufen – der Admin-Worker oder, für Produktivsysteme empfohlen, ein Konsolen-Worker wie
bin/console messenger:consume async. - Geplante Aufgaben: Die tägliche Bereinigung wird vom Scheduled-Task-Runner von Shopware angestoßen (
bin/console scheduled-task:runoder dein Cron-Setup) und vom Message-Worker ausgeführt. Fehlt einer von beiden, meldet die Audit-Log-Liste „Die automatische Bereinigung hinkt hinterher”.
Verarbeitung großer Datenmengen
Große Schreibvorgänge, etwa ein ERP-Import über die Sync-Schnittstelle, werden in Paketen zu höchstens 500 Einträgen in die Warteschlange gelegt. Auch die tägliche Bereinigung löscht in Paketen zu 500 Einträgen, höchstens 50.000 Einträge je Durchlauf. Bleibt danach noch etwas zu löschen – etwa nachdem die geplanten Aufgaben längere Zeit nicht liefen –, legt sie eine Folgenachricht in die Warteschlange und macht dort weiter, bis alles Abgelaufene entfernt ist. Nach 1.000 Folgenachrichten setzt die Kette aus, der nächste tägliche Lauf übernimmt den Rest. Gelöscht werden zuerst die Einträge jenseits der Aufbewahrungsfrist, danach – falls gesetzt – die ältesten Einträge über der Obergrenze.
Wird ein Benutzer oder eine Integration gelöscht, bevor die Warteschlange abgearbeitet ist, bleibt der Eintrag trotzdem erhalten; der Benutzername wird als Momentaufnahme gespeichert.
Entwurfsversionen
Schreibvorgänge in Entwurfsversionen werden nicht protokolliert – etwa die Arbeitskopie, die Shopware beim Bearbeiten einer Bestellung in der Administration anlegt und beim Abbrechen wieder verwirft. Erfasst wird erst das Speichern in die Live-Version, als Änderung.
Obergrenze per Konsole setzen
Die Maximale Anzahl Einträge lässt sich auch ohne Administration setzen, etwa beim Deployment. 0 hebt die Obergrenze auf:
bin/console system:config:set SwpAuditLogSix.config.maxEntries 500000
Status für die Überwachung
Die Protokollgröße über der Liste liest die Administration über GET /api/_action/swp-audit-log/status. Die Route verlangt das Leserecht des Audit Logs und eignet sich auch für ein externes Monitoring. Die Antwort enthält die Anzahl der Einträge (total), den ältesten Eintrag, Aufbewahrungsfrist und Obergrenze, den letzten und nächsten Lauf der Bereinigung sowie cleanupBehind. Dieser Wert wird true, wenn der älteste Eintrag älter ist als die Aufbewahrungsfrist plus zwei Tage oder wenn die Obergrenze überschritten ist und die Bereinigung seit mehr als zwei Tagen nicht gelaufen ist.
Löschbefehl für einzelne Datensätze
bin/console swp:audit-log:purge-entity <entityName> <entityId> [--dry-run] [--force]
--dry-runzählt nur die passenden Einträge.--forcelöscht ohne Rückfrage. Ohne--forcefragt der Befehl nach und bricht in nicht-interaktiven Umgebungen ab.- Der Befehl ist der einzige Weg, einzelne Einträge zu entfernen, weil er mit Systemrechten auf der Konsole läuft. Jeder Schreib- oder Löschversuch über die Admin-Schnittstelle wird mit HTTP 403 abgewiesen.
Installation über die Kommandozeile
bin/console plugin:refresh
bin/console plugin:install --activate SwpAuditLogSix
bin/console cache:clear
Deinstallation
Das Plugin speichert seine Einträge in einer eigenen Tabelle; Shopware-eigene Tabellen werden nicht verändert. Beim Deinstallieren ohne Datenerhalt wird diese Tabelle entfernt.
Diese Anleitung wurde für Audit Log - Admin-Änderungsprotokoll Version 6.7.0 erstellt.
Weitere Handbücher
Admin Passwort Erinnerung
Admin Passwort Erinnerung: Deine Backend-Benutzer erneuern ihre Passwörter rechtzeitig, mit Hinweis nach dem Login und täglicher E-Mail. Premium sperrt abgelaufene Zugänge.
Handbuch öffnen Shopware 6Altersprüfung
Tabak, Spirituosen, Messer: Wer sein Alter nicht bestätigt, sieht die geschützten Artikel gar nicht erst. Du markierst sie pro Produkt, das Plugin blendet sie aus.
Handbuch öffnen Shopware 6Ansprechpartner
Ansprechpartner im Shop zeigen: Ordne Personen Artikeln, Kategorien, Kunden und Kundengruppen zu, mit Kontaktwegen von Telefon bis WhatsApp und vCard zum Speichern.
Handbuch öffnenWer betreut deinen Shop, wenn es ernst wird?
Wir pflegen Shopware-Shops seit über 20 Jahren, inklusive Updates, Hotfixes und der Plugins, die du hier gerade einrichtest.