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
productNumberals auch auftranslated.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:
- In der Liste den fehlerhaften Eintrag öffnen.
- „Rückgängig machen" klicken.
- Confirm-Modal bestätigt: „Wirklich auf den Stand vom
zurücksetzen?" - 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 =
importfü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.