Zum Inhalt

Audit-Log & Rollback

Neben der PAngV-Compliance liefert das Plugin ein vollständiges Audit-Log aller Produktänderungen – mit Filter, Detail-Ansicht und Rollback per Klick. Hier die wichtigsten Workflows.

Modul aufrufen

Im Admin: Kommora → Produkt-Historie → Liste.

Die Liste

Standardmäßig zeigt die Liste alle History-Einträge sortiert nach Datum absteigend (neueste oben). Pro Eintrag:

Spalte Inhalt
Geändert am Datum + Uhrzeit der Änderung
Produkt Produktname (übersetzt) + Produktnummer, klickbar zur Produkt-Detailseite
Feld Feldname (z.B. „Bruttopreis (VK)")
Alt Vorheriger Wert (Preise mit Währung, Bools als ✓/✗, JSON als kompakter String)
Neu Neuer Wert
Von User-Name oder Quelle („import", „api", „CLI: …")

Filter

Die Filter oben in der Liste:

  • Feldname: Multi-Select. Nur Preis-Änderungen sehen? Nur Bestand? Nur Custom Fields?
  • Von Datum / Bis Datum: Zeitraum.
  • Produktsuche: Eingabe Produkt-Nr oder Produkt-Name (Live-Suche mit 300ms-Debounce, suche läuft sowohl auf productNumber als auch auf translated.name).
Häufige Filter-Kombinationen
  • Letzte 7 Tage, Feld: Preis → schnelle Sicht auf alle Preisänderungen der Woche
  • Quelle: import, letzter Tag → Auswirkungen des letzten Imports prüfen
  • Produkt: Test-Artikel-1, alle Felder → komplette Historie eines konkreten Produkts

Detail-Ansicht eines Eintrags

Klick auf eine Listen-Zeile öffnet die Detail-Ansicht.

Oben ist der Rollback-Button „Rückgängig machen". Daneben Status-Badges:

  • Feld: Welches Feld geändert wurde
  • Geändert am: Datum/Uhrzeit
  • Geändert von: User-Name (auto-aufgelöst aus User-ID; fällt zurück auf Username/E-Mail)
  • Quelle: admin (Web-UI), api, cli, import, subscriber

Darunter:

  • Alt-Wert: vollständiger vorheriger Wert (auch JSON)
  • Neu-Wert: vollständiger neuer Wert
  • Context-Data: optional zusätzliche Daten (z.B. bei Preis-Updates die Sales-Channel-ID, bei Bestand-Änderungen die Quell-Lager-ID)

Bei Preis-Feldern: ein Preisverlauf-Chart der letzten 90 Tage darüber.

Rollback einer Änderung

Mit dem „Rückgängig machen"-Button kannst Du den Wert auf den Stand vor dieser Änderung zurücksetzen.

Workflow:

  1. In der Liste den fehlerhaften Eintrag öffnen.
  2. „Rückgängig machen" klicken.
  3. Confirm-Modal bestätigt: „Wirklich auf den Stand vom zurücksetzen?"
  4. Bei Bestätigung wird der Wert via DAL zurückgeschrieben – und gleichzeitig erscheint ein neuer History-Eintrag mit der Begründung „Rollback aus History-Eintrag ".
Rollback verändert nur ein Feld

Wenn Du z.B. Preis und Bestand gleichzeitig geändert hattest und beides zurücksetzen willst, musst Du zwei Rollbacks machen. Bulk-Rollback gibt es noch nicht.

Tab „Historie" am Produkt

Wenn Du eine Produkt-Detailseite öffnest, erscheint links im Tab-Menü ein neuer Tab „Historie".

Dort eine kompakte Liste aller Änderungen NUR dieses Produkts – plus, bei Preis-Änderungen, das Preisverlauf-Diagramm der letzten 90 Tage.

Filter im Tab: nur „Feldname" – die anderen sind weggelassen, weil eh produkt-spezifisch.

CSV-Export der Historie

In der Liste oben rechts der Button „Als CSV exportieren". Der Export berücksichtigt die aktuell gesetzten Filter – Du bekommst genau die Einträge, die in der Liste sichtbar sind.

Empfohlene Anwendungen:

  • Steuerprüfung: Export aller Preisänderungen eines Quartals
  • Lieferanten-Audit: Export aller Änderungen mit Quelle = import für einen Lieferanten
  • Backup: regelmäßiger Export als Archiv, bevor die Retention greift

PDF-Export

Alternativ ist ein PDF-Export möglich – Layout: Tabelle mit Header pro Produkt, gruppiert. Sieht weniger nach Excel und mehr nach „Audit-Bericht" aus.

Gut geeignet für:

  • Berichte an Geschäftsführung
  • Anhang an Mahnungen wegen Preis-Reklamationen
  • Versand an Steuerberater

Manuelle History-Einträge

Manchmal möchtest Du eine Änderung dokumentieren, die nicht im normalen Workflow lief – z.B. eine manuelle DB-Korrektur oder ein externer Vorgang.

Über CLI:

php bin/console kommora:history:add \
    --productNumber=SW10000 \
    --field="price.gross" \
    --oldValue="49.99" \
    --newValue="44.99" \
    --source="manual" \
    --comment="Korrektur nach Reklamation Ticket #12345"

Erscheint dann in der Liste wie jeder andere Eintrag.

API-Zugriff

Über die Admin-API:

Endpoint Wirkung
GET /api/_action/kommora-product-history/list?page=1&limit=50&fieldName=price.gross Paginiert die Liste mit Filtern
GET /api/_action/kommora-product-history/entry/{id} Einzeleintrag
GET /api/_action/kommora-product-history/entries/{productId} Alle Einträge eines Produkts
POST /api/_action/kommora-product-history/rollback/{id} Rollback (204 No Content)
POST /api/_action/kommora-product-history/export-csv CSV-Export mit Filter-Payload

ACL-Berechtigung: kommora_product_history:read für GETs, kommora_product_history:update für Rollback und Sync.

Weiter