Zum Inhalt springen
Shopware 6 Handbuch

Bestellungen durch Kunden löschen

Bestellung löschen statt stornieren: Deine Kunden entfernen alte Bestellungen selbst aus ihrem Kundenkonto. Du legst Bestellstatus und Wartezeit fest, je Verkaufskanal.

Version 6.7.1 Kompatibel mit 6.7.0 und neuer 12 Min. Lesezeit
Auf dieser Seite

Einleitung

Mit Bestellungen durch Kunden löschen entfernen deine Kunden alte Bestellungen selbst aus ihrem Kundenkonto. Du legst fest, welche Bestellungen dafür in Frage kommen.

Was du mit diesem Plugin erreichst

  • Deine Kunden räumen ihre Bestellübersicht selbst auf. Anfragen wie „Bitte löscht meine alte Bestellung” an deinen Support fallen weg.
  • Du entscheidest über den Bestellstatus, welche Bestellungen gelöscht werden dürfen.
  • Eine Wartezeit ab dem Bestelldatum schützt frische Bestellungen. Was du gerade versendest, verschwindet nicht mitten im Ablauf.
  • Vor dem Löschen fragt ein Dialog nach. So löscht niemand versehentlich.
  • Jeder Verkaufskanal hat eigene Einstellungen. Im Endkunden-Shop gibst du das Löschen frei, im Händler-Shop lässt du es aus.

Was das Plugin nicht tut

Das Plugin löscht Bestellungen, es storniert sie nicht. Es setzt keinen Status, bucht keinen Lagerbestand zurück und löst keine Erstattung aus. Eine gelöschte Bestellung ist endgültig weg, auch für dich in der Administration. Lies vor dem Einrichten bitte Bevor du freigibst: Löschen ist endgültig.

Für wen ist dieses Plugin?

Für Shop-Betreiber, deren Kunden ihre Bestellhistorie selbst aufräumen möchten, etwa bei gemeinsam genutzten Konten oder Geschenkbestellungen.

Installation

Nach dem Kauf steht dir das Plugin direkt in deiner Administration zur Verfügung. Du musst nichts herunterladen.

  1. Melde dich in deiner Shopware-Administration an (DeinShop.de/admin).
  2. Öffne Erweiterungen → Meine Erweiterungen.
  3. Suche den Eintrag Bestellungen durch Kunden löschen und klicke auf Installieren.
  4. Aktiviere das Plugin über den Schalter links neben dem Eintrag.

Das Plugin ist installiert und aktiviert Abb. 1: Das Plugin ist unter Erweiterungen → Meine Erweiterungen installiert und aktiviert.

Taucht Bestellungen durch Kunden löschen nicht in der Liste auf, ist dein Shopware-Account noch nicht mit dem Shop verbunden. Das erledigst du unter Erweiterungen → Meine Erweiterungen im Reiter Shopware Account über die Anmeldung mit deinem Shopware-Konto.

Erste Schritte

Direkt nach der Installation ist das Plugin eingeschaltet, aber noch kann niemand etwas löschen. Erst wenn du mindestens einen Bestellstatus freigibst, erscheint der Löschen-Eintrag bei deinen Kunden.

  1. Einstellungen öffnen: Klicke unter Erweiterungen → Meine Erweiterungen neben dem Plugin auf Konfigurieren.

    Konfiguration direkt nach der Installation Abb. 2: Solange kein Bestellstatus gewählt ist, kann keine Bestellung gelöscht werden.

  2. Bestellstatus freigeben: Wähle unter Bestellstatus, in denen Kunden löschen dürfen die Status aus, bei denen eine Bestellung für dich erledigt ist, zum Beispiel Abgeschlossen und Abgebrochen.

  3. Wartezeit prüfen: Unter Wartezeit bis zum Löschen (Tage) sind 30 Tage voreingestellt. Passe den Wert bei Bedarf an.

  4. Klicke auf Speichern.

    Eingerichtete Konfiguration Abb. 3: Eingerichtet: Kunden dürfen abgeschlossene und abgebrochene Bestellungen nach 30 Tagen löschen.

  5. Ergebnis prüfen: Melde dich in der Storefront mit einem Testkonto an, öffne Bestellungen im Kundenkonto und klicke bei einer passenden Bestellung auf die drei Punkte. Dort steht jetzt Bestellung löschen.

Einstellungen

Die Einstellungen findest du unter Erweiterungen → Meine Erweiterungen über Konfigurieren neben dem Plugin. Alle Einstellungen stehen in der Karte Löschen von Bestellungen durch Kunden.

Ganz oben in der Karte findest du den Button Dokumentation öffnen. Er führt dich zu dieser Anleitung im Web, in der Sprache deiner Administration.

Plugin für diesen Verkaufskanal aktivieren

Mit dem Schalter Plugin für diesen Verkaufskanal aktivieren legst du fest, ob deine Kunden in diesem Verkaufskanal überhaupt Bestellungen löschen können. Standardmäßig ist er eingeschaltet. Schaltest du ihn aus, sehen die Kunden dieses Kanals den Eintrag Bestellung löschen nicht mehr, und ein Löschversuch wird abgewiesen.

Wozu das gut ist: Du betreibst einen Endkunden-Shop und einen Händler-Shop. Im Endkunden-Shop lässt du das Löschen zu, im Händler-Shop mit Sammelrechnungen schaltest du es ab, ohne das Plugin zu deinstallieren.

Wartezeit bis zum Löschen (Tage)

Mit Wartezeit bis zum Löschen (Tage) bestimmst du, wie viele Tage nach dem Bestelldatum eine Bestellung frühestens gelöscht werden darf. Voreingestellt sind 30 Tage. Bei 0 dürfen Kunden sofort löschen, sobald der Bestellstatus passt.

Gezählt wird in Kalendertagen ab dem Bestelltag. Ein Beispiel: Eine Bestellung vom 1. März ist bei 30 Tagen Wartezeit ab dem 31. März löschbar.

Wozu das gut ist: Die Wartezeit gibt dir Luft für Versand, Rückfragen und Buchhaltung. Erst danach kann der Kunde die Bestellung entfernen.

Bestellstatus, in denen Kunden löschen dürfen

Mit Bestellstatus, in denen Kunden löschen dürfen wählst du einen oder mehrere Bestellstatus aus. Nur Bestellungen in einem dieser Status bekommen den Eintrag Bestellung löschen. Ohne Auswahl kann keine Bestellung gelöscht werden. Das ist der Zustand direkt nach der Installation.

Am Fragezeichen-Symbol neben dem Feld findest du einen Hilfetext mit einer Empfehlung.

Hilfetext zur Statusauswahl Abb. 4: Der Hilfetext erklärt, welche Status sinnvoll sind, und warnt vor „Offen” mit Wartezeit 0.

Unsere Empfehlung: Gib nur Status frei, in denen die Bestellung für dich erledigt ist, also Abgeschlossen und Abgebrochen. Kombiniere das mit einer Wartezeit von einigen Wochen.

Wichtig: Gibst du den Status Offen frei und setzt die Wartezeit auf 0, können Kunden und Gäste eine Bestellung direkt nach dem Kauf löschen. Die Bestellung ist dann auch für dich verschwunden, bevor du sie bearbeitet hast.

Die Statusnamen in der Auswahl erscheinen in der Inhaltssprache deines Shops.

So richtest du das Plugin je Verkaufskanal ein

Was dir das bringt: Du steuerst das Löschen in jedem Verkaufskanal getrennt, mit eigenem Schalter, eigener Wartezeit und eigener Statusauswahl.

Schritt für Schritt

  1. Öffne die Plugin-Konfiguration über Erweiterungen → Meine Erweiterungen → Konfigurieren.

  2. Wähle oben im Feld Verkaufskanal den gewünschten Kanal aus, zum Beispiel Storefront.

    Verkaufskanal-Umschalter Abb. 5: Pro Verkaufskanal lässt sich das Plugin getrennt konfigurieren; nicht überschriebene Werte werden geerbt.

  3. Die Felder zeigen jetzt ein Verkettungs-Symbol. Es bedeutet: Dieser Kanal übernimmt den Wert aus Alle Verkaufskanäle.

  4. Klicke auf das Verkettungs-Symbol vor einer Einstellung, um für diesen Kanal einen eigenen Wert festzulegen. Ändere dann den Wert.

  5. Klicke auf Speichern.

Ein Wert, den du für einen Kanal festlegst, hat dort Vorrang vor Alle Verkaufskanäle. Alles, was du nicht änderst, übernimmt der Kanal weiter aus Alle Verkaufskanäle.

Tipp: Richte die gemeinsamen Werte unter Alle Verkaufskanäle ein. Überschreibe im einzelnen Kanal nur, was dort anders sein soll, zum Beispiel den Schalter Plugin für diesen Verkaufskanal aktivieren im Händler-Shop.

Ein Kunde kann außerdem nur Bestellungen löschen, die er in dem Verkaufskanal aufgegeben hat, in dem er gerade angemeldet ist.

So löschen deine Kunden eine Bestellung

Was dir das bringt: Deine Kunden entfernen erledigte Bestellungen selbst, ohne deinen Support zu fragen.

So sieht es für deine Kunden aus

  1. Der Kunde meldet sich an und öffnet im Kundenkonto den Bereich Bestellungen.

  2. Er klickt bei einer Bestellung auf die drei Punkte. Ist die Bestellung löschbar, steht im Menü der Eintrag Bestellung löschen.

    Kontextmenü mit Bestellung löschen Abb. 6: Bei freigegebenen Bestellungen erscheint im Menü der Eintrag „Bestellung löschen”.

  3. Ein Dialog fragt nach: „Achtung, wenn Sie die Bestellung löschen, gehen alle Verknüpfungen und Dokumente verloren!” und „Sind Sie sicher, dass Sie die Bestellung unwiderruflich löschen wollen?” Mit Zurück bricht der Kunde ab, mit Bestellung löschen bestätigt er.

    Bestätigungsdialog Abb. 7: Vor dem Löschen muss der Kunde die Sicherheitsabfrage bestätigen.

  4. Nach der Bestätigung erscheint die Meldung „Die Bestellung wurde gelöscht.” Die Bestellung ist aus der Liste verschwunden.

    Bestellung gelöscht Abb. 8: Nach der Bestätigung erscheint die Erfolgsmeldung, die Bestellung ist aus der Liste verschwunden.

Wann der Eintrag erscheint

Der Eintrag Bestellung löschen erscheint nur, wenn alle Bedingungen erfüllt sind:

  • Das Plugin ist im Verkaufskanal eingeschaltet.
  • Die Bestellung steht in einem freigegebenen Bestellstatus.
  • Die Wartezeit seit dem Bestelldatum ist abgelaufen.
  • Die Bestellung wurde in diesem Verkaufskanal aufgegeben.

Bei allen anderen Bestellungen sieht der Kunde den Eintrag gar nicht.

Offene Bestellung ohne Löschen-Eintrag Abb. 9: Bestellungen in einem nicht freigegebenen Status, hier „Offen”, bieten keine Löschfunktion an.

Beim Bestätigen prüft dein Shop alle Bedingungen noch einmal. Zusätzlich muss die Bestellung dem angemeldeten Kunden gehören. Fremde Bestellungen kann niemand löschen.

Gäste

Für Gäste, die ohne Kundenkonto bestellt haben, gelten dieselben Regeln wie für Kunden. Sie können eine Bestellung nur löschen, solange sie in ihrer Gast-Sitzung angemeldet sind.

Bevor du freigibst: Löschen ist endgültig

Lies diesen Abschnitt, bevor du den ersten Bestellstatus freigibst.

  • Endgültig gelöscht. Die Bestellung verschwindet vollständig aus Shopware, mit ihren Positionen und der Zuordnung ihrer Dokumente. Auch du siehst sie danach nicht mehr in der Administration. Es gibt keinen Papierkorb und keine Wiederherstellung.
  • Kein Stornieren. Das Plugin ändert keinen Status, bucht keinen Lagerbestand zurück und löst keine Erstattung aus. Gib deshalb nur Status frei, bei denen Versand, Bestand und Zahlung bereits erledigt sind.
  • Aufbewahrungspflichten. Rechnungen und andere Belege unterliegen oft gesetzlichen Aufbewahrungspflichten. Sichere sie vorher außerhalb von Shopware, zum Beispiel in deiner Buchhaltung oder Warenwirtschaft. Daten, die dort schon liegen, bleiben unverändert.

Wichtig: Diese Anleitung ist keine Rechtsberatung. Ob und wann deine Kunden Bestellungen löschen dürfen, klärst du im Zweifel mit deiner Steuerberatung oder einem Rechtsbeistand.

Update von einer älteren Version

Aktualisierst du das Plugin von einer älteren Version, musst du nichts nachholen. Hattest du den Schalter für den Verkaufskanal bisher in einzelnen Kanälen ein- oder ausgeschaltet, übernimmt das Update diese Einstellung automatisch in den Schalter Plugin für diesen Verkaufskanal aktivieren.

Prüfe nach dem Update kurz die Statusauswahl und die Wartezeit je Verkaufskanal.

Fehlerbehebung

Der Eintrag „Bestellung löschen” erscheint nicht

Woran es liegt: Mindestens eine Bedingung ist nicht erfüllt.

So behebst du es: Prüfe in der Plugin-Konfiguration für den Verkaufskanal des Kunden:

  1. Ist Plugin für diesen Verkaufskanal aktivieren eingeschaltet?
  2. Ist der aktuelle Status der Bestellung unter Bestellstatus, in denen Kunden löschen dürfen ausgewählt? Ohne Auswahl ist nichts löschbar.
  3. Ist die Wartezeit bis zum Löschen (Tage) seit dem Bestelldatum schon abgelaufen?
  4. Wurde die Bestellung in dem Verkaufskanal aufgegeben, in dem der Kunde gerade angemeldet ist? Bestellungen aus anderen Kanälen lassen sich dort nicht löschen.

Prüfe beim gewählten Verkaufskanal auch, ob ein eigener Wert den Wert aus Alle Verkaufskanäle überschreibt.

Ändert sich trotz richtiger Einstellungen nichts, leere den Cache: Einstellungen → Caches & Indizes → Cache löschen.

Der Kunde sieht die Meldung „Während des Löschungsvorgangs ist ein Fehler aufgetreten.”

Woran es liegt: Beim Bestätigen hat dein Shop die Bedingungen erneut geprüft, und mindestens eine war nicht mehr erfüllt. Typisch ist: Du hast den Status der Bestellung oder die Einstellungen geändert, während der Kunde die Seite offen hatte. Oder der Kunde hatte die Bestellung in einem zweiten Browser-Tab bereits gelöscht.

So behebst du es: Der Kunde lädt die Seite Bestellungen neu. Steht der Eintrag dann wieder da, kann er erneut löschen. Fehlt er, gilt die Liste aus dem vorigen Abschnitt.

Die Statusnamen in der Auswahl stehen in einer anderen Sprache

Woran es liegt: Die Auswahl zeigt die Statusnamen in der Inhaltssprache deines Shops.

So behebst du es: Nichts. Die Auswahl wirkt in allen Sprachen gleich. Wählst du Abgeschlossen aus, gilt das auch für Kunden mit englischer Storefront.

FAQ

F: Ist Löschen dasselbe wie Stornieren?

A: Nein. Beim Stornieren bleibt die Bestellung erhalten und bekommt den Status „Abgebrochen”. Dieses Plugin entfernt die Bestellung vollständig. Für ein echtes Storno nutzt du die Storno-Funktion von Shopware. Du kannst beides kombinieren: Der Kunde storniert zuerst, und wenn du Abgebrochen freigibst, löscht er die Bestellung danach.

F: Kann ich eine gelöschte Bestellung wiederherstellen?

A: Nein. Die Bestellung ist auch für dich endgültig weg. Deshalb gibt es den Bestätigungsdialog, die Statusauswahl und die Wartezeit.

F: Funktioniert das mit meinem Theme?

A: Ja, wenn dein Theme die Bestellübersicht im Kundenkonto aus dem Shopware-Standard übernimmt. Das Plugin ergänzt dort das Menü hinter den drei Punkten einer Bestellung und lässt alle anderen Einträge stehen. Ersetzt ein Theme diese Übersicht komplett, kann der Eintrag fehlen. Das prüfst du am schnellsten mit einem Testkonto.

F: Funktioniert das in einem Headless-Shop mit Composable Frontends?

A: Nein. Das Plugin arbeitet in der Shopware-Storefront und bietet keine Schnittstelle für eigene Frontends. Dort erscheint der Eintrag nicht.

F: Was passiert bei der Deinstallation?

A: Lässt du Shopware bei der Deinstallation die Plugin-Daten entfernen, verschwinden die Plugin-Einstellungen. Behältst du die Daten, bleiben die Einstellungen für eine spätere Neuinstallation erhalten. Bestellungen, die Kunden bis dahin gelöscht haben, bleiben in jedem Fall gelöscht.

F: Sendet das Plugin Daten an externe Dienste?

A: Nein. Das Plugin arbeitet ausschließlich mit den Bestelldaten in deinem Shop und ruft keine externen Dienste auf.

F: Kann ich das Löschen nur in einzelnen Verkaufskanälen erlauben?

A: Ja. Alle drei Einstellungen gelten je Verkaufskanal. Wie das geht, steht in So richtest du das Plugin je Verkaufskanal ein.

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

Daten und Datenbank

  • Das Plugin legt keine eigenen Datenbanktabellen an und ändert keine Shopware-Tabellen.
  • Gelöscht wird über die Datenbankschicht von Shopware. Damit löst Shopware alle Abhängigkeiten auf, die es beim Löschen einer Bestellung selbst kennt, darunter Positionen und Dokumentzuordnungen.
  • Erzeugte Dokument-Dateien können ohne Zuordnung im Dateispeicher des Shops verbleiben.

Konfigurationsschlüssel

Die Einstellungen liegen in der Systemkonfiguration unter dem Präfix SwpOrderDeleteByCustomerSix.config., jeweils je Verkaufskanal:

  • active — Schalter „Plugin für diesen Verkaufskanal aktivieren”
  • deleteAfterDays — „Wartezeit bis zum Löschen (Tage)”, 0 bis 3650
  • orderState — „Bestellstatus, in denen Kunden löschen dürfen”, Liste von Status-IDs der Bestell-Statusmaschine

Beim Update aus älteren Versionen überträgt eine Migration die gespeicherten Werte des früheren Schalters channelActive je Verkaufskanal nach active.

Route und Prüfung

  • Das Löschen läuft über POST /account/swp-order-delete in der Storefront, mit Anmeldepflicht (Gast-Sitzungen erlaubt).
  • Der Server prüft bei jedem Aufruf: Kanal-Schalter, Eigentum der Bestellung (Kunde der Bestellung = angemeldeter Kunde), Verkaufskanal der Bestellung, freigegebener Status und abgelaufene Wartezeit. Dieselbe Regel steuert die Anzeige des Eintrags in der Storefront.
  • Ein Aufruf mit fremder oder ungültiger Bestell-ID endet mit der Fehlermeldung, ohne zu löschen.
  • Keine Store-API-Route, daher keine Unterstützung für Composable Frontends.

Storefront-Anpassung

Das Plugin erweitert das Core-Template der Bestellhistorie (page/account/order-history/order-item.html.twig) im Block des Kontextmenüs und ruft den Originalinhalt mit auf. Andere Erweiterungen desselben Blocks bleiben erhalten.

Installation über die Kommandozeile

php bin/console plugin:refresh
php bin/console plugin:install SwpOrderDeleteByCustomerSix --activate
php bin/console cache:clear

Diese Anleitung wurde für Bestellungen durch Kunden löschen Version 6.7.1 erstellt.

Wer 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.