Center sicher löschen
Das Löschen eines Centers im Dashboard folgt einem zweistufigen Ablauf: zuerst vollständiges Backup (ZIP), dann bestätigtes Löschen. So bleibt das Dashboard aufräumbar, ohne Datenverlust und ohne gemeinsam genutzte Stammdaten anderer Center zu beschädigen.
Wo im Dashboard
Content → Shopping Center → Center öffnen → Löschen (oder direkt /dashboard/content/centers/delete/{centerId}).
Ablauf
- Vorschau — Anzeige, welche Inhalte mit dem Center entfernt werden und welche gemeinsamen Daten erhalten bleiben (z. B. Shop-Ketten, die noch in anderen Centern Filialen haben).
- Backup automatisch — Gleicher ZIP-Export wie unter Center-Datenexport (Stammdaten, Template/
themeOverrides, Content, Medien, Analytics-Auszüge). Der Download startet automatisch. - Prüfung — Checkbox: „Ich habe die Backup-ZIP geöffnet und geprüft.“
- Löschen — Erst dann ist der Button „Nach Backup-Prüfung löschen“ aktiv. Der Löschvorgang läuft im Hintergrund (Fortschrittsanzeige auf der Seite); große Center können mehrere Minuten dauern, ohne dass die Verbindung abbricht.
In der Breadcrumb und in der Seitenüberschrift wird das Center als Name (Organisation) angezeigt — nicht als technische ID.
Optional: Content an anderes Center übergeben (Shops, News, Events, … umziehen statt löschen).
Was bleibt erhalten (nicht gelöscht)
| Daten | Verhalten |
|---|---|
| Shop-Ketten (ShopChain) | Bleiben, wenn andere Center Filialen dieser Kette haben |
Globale Kategorien (centerId = null) | Unverändert |
| Organisations-Stammdaten | Unverändert |
Medien mit scope ≠ center | Nicht gelöscht |
Nur diesem Center zugeordnete Filialen (ShopLocation), Shops, Inhalte, Centerplan, Team-Einträge usw. werden entfernt — oder bei „Daten übergeben“ ins Ziel-Center verschoben.
API (Dashboard-intern)
| Schritt | Route |
|---|---|
| Vorschau | GET /api/centers/{centerId}/delete-preview |
| Backup starten | POST /api/centers/{centerId}/export/start mit { "purpose": "pre_deletion" } |
| ZIP laden | GET /api/centers/{centerId}/export/download?jobId=… |
| Löschen starten | DELETE /api/centers/{centerId} mit { "backupJobId", "backupAcknowledged": true } → Antwort 202 mit { "jobId" } |
| Lösch-Status | GET /api/centers/{centerId}/delete/status?jobId=… (Polling bis status: completed oder failed) |
Ohne gültiges Backup (heruntergeladene ZIP) antwortet die API mit 400 (BACKUP_REQUIRED).
Berechtigung
Wie beim Datenexport: Super-Admin, Org-Admin/Marketing am Center oder explizite Center-Zuweisung mit Export-Recht für das Backup; Löschen zusätzlich für berechtigte Center-Admins.
Nutzungsstatistik: Seitenaufrufe werden anonymisiert erfasst. Im Umami-Dashboard nach diesem Pfad filtern: /dashboard/center-loeschen