Wie kann ich Bestellungen aus der Übersicht löschen?

Hallo,

ich setze gerade einen Shop mit SW6 auf. Nun wollte ich den Ablauf einer Bestellung testen, weshalb ich mich selbst mit meiner privaten Mail als Kunde registriert und Testbestellungen durchgeführt habe. Diese Bestellungen will ich nun aber nicht nur stornieren (dann bleiben sie ja in der Liste), sondern eben auch löschen. Laut Dokumentation von Shopware6 geht das auch, aber ich finde nichts entsprechendes in den Bestelldetails im Backend.

https://docs.shopware.com/de/shopware-6-de/bestellungen/uebersicht#details : “Du kannst die jeweilige Bestellung dort stornieren, sofern dies erforderlich ist, oder aber auch löschen.”

Kann mir jemand helfen?

Vielen Dank und LG

@wollefreak‍ Hey, das ist eine gute Frage. Sucher gerade auch nach einer Möglichkeit Testbestellungen zu löschen.

Guten Abend zusammen,

habe mir nun ein Command Plugin programmiert mit dem ich Bestellungen löschen kann. 

bin/console diga:deleteorder [bestellnummer]

Stelle das gerne zur Verfügung, wenn es jemand braucht. 

Hier die execute methode wenn es jemand nachprogrammieren möchte.

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $io = new SymfonyStyle($input, $output);
        $orderNr = $input->getArgument('order');
        $output->writeln('Remove order nr: ' . $orderNr);

        $context = Context::createDefaultContext();
       
        /** @var EntityCollection $entities */
        $orders = $this->orderRepository->search(
            (new Criteria())->addFilter(new EqualsFilter('orderNumber', $orderNr)),
            $context);

        if (\count($orders) === 0) {
            $io->error('no orders found');

            return 1;
        }

        foreach ($orders as $key => $order) {
            $orderNumber = $order->getOrderNumber();   
            $id = $order->getUniqueIdentifier();
            $output->writeln('order: ' . $orderNumber . ' id: ' . $id );

            if($id){
                $output->writeln('remove order: ' . $orderNumber . ' id: ' . $id );
                $this->orderRepository->delete([['id' => $id],], $context);
            }            
        }               
    }

 

2 „Gefällt mir“

Hi, vielen Dank!

Ich habe es noch nicht ausprobiert, habe aber eine Frage vorab: Berücksichtig das auch die ganzen Abhängigkeiten, oder löscht es lediglich den Eintrag in der Order Tabelle?

Hintergrund: siehe hier: https://docs.shopware.com/en/shopware-platform-dev-en/internals/core/erd/shopware-core-checkout-order

Grüße

Guten Morgen,

da ich den DAL Layer verwende, um die Bestellungen zu löschen, gehe ich davon aus das es vom Framework berücksichtigt wird, jedoch würde eine kurze Bestätigung von SW mich enorm beruhigen :slight_smile:

Hier ist ein how-to: https://docs.shopware.com/en/shopware-platform-dev-en/how-to/deleting-entities 

Gruß 

1 „Gefällt mir“

Ich fände ein Feedback von Shopware auch hilfreich :) 

Im Admin Interface gab es ja mal den ausgegrauten Button, nun wurde er entfernt.

Also ich muss auch sagen dass der Bestellablauf zu wünsche übrig lässt. Ich kann von dem Ablauf nichts ändern.

Ich müsste z.B. einen Paypal bezahllink mit der Rechnung verschicken. Dazu würde ich am liebsten einen neuen Punkt erstellen. Dies ist aber leider nicht möglich.
Auch gehen die Variablen scheinbar nicht richtig. Die Mail geht dann einfach nicht raus.

Ein Blick in die Datenbank zeigt, dass die Abhängigkeiten leider nicht gelöscht werden…

Man müßte das Script noch um einige Funktionen und Abrfagen erweitern.

Grüße

Hallo, 

leider haben mir die bisherigen Antworten nicht weitergeholfen. Sehr schade, dass in der Dokumentation eine Funktion beschrieben ist, die es in der Shop-Administration gar nicht gibt. Ich hoffe, dass diese Unstimmigkeit durch Shopware behoben wird (habe heute noch eine weitere in einem anderen Punkt entdeckt: Versandarten lassen sich nicht duplizieren, wie erklärt).

Grüße

Ich hoffe auch sehr, dass eine entsprechende Funktion nachgereicht wird. Es ist kein seltener Fall dass man mal eine Bestellung löschen möchte und jedes mal in der Datenbank rum fuhrwerken möchte ich auf dauer nicht.

Gleiches Problem hier. Bestellungen können nicht gelöscht werden… :confused:

Das wäre wirklich super wenn du deine Erweiterung zur Verfügung stellen könntest @seriewe

@seriewe schrieb:

Guten Abend zusammen,

habe mir nun ein Command Plugin programmiert mit dem ich Bestellungen löschen kann. 

bin/console diga:deleteorder [bestellnummer]

Stelle das gerne zur Verfügung, wenn es jemand braucht. 

Hier die execute methode wenn es jemand nachprogrammieren möchte.

protected function execute(InputInterface $input, OutputInterface $output)
{
$io = new SymfonyStyle($input, $output);
$orderNr = $input->getArgument(‚order‘);
$output->writeln('Remove order nr: ’ . $orderNr);

$context = Context::createDefaultContext();

/** @var EntityCollection $entities */
$orders = $this->orderRepository->search(
(new Criteria())->addFilter(new EqualsFilter(‚orderNumber‘, $orderNr)),
$context);

if (\count($orders) === 0) {
$io->error(‚no orders found‘);

return 1;
}

foreach ($orders as $key => $order) {
$orderNumber = $order->getOrderNumber();
$id = $order->getUniqueIdentifier();
$output->writeln('order: ’ . $orderNumber . ’ id: ’ . $id );

if($id){
$output->writeln('remove order: ’ . $orderNumber . ’ id: ’ . $id );
$this->orderRepository->delete([[‚id‘ => $id],], $context);
}
}
}

 

Gibt es im Store eigentlich wo ein Plugin dafür? Hab leider noch keines gefunden. Weiß jemand vielleicht auch ob Shopware die Funktion direkt bereitstellt in der Zukunft?

@NeoRetro schrieb:

Gibt es im Store eigentlich wo ein Plugin dafür? Hab leider noch keines gefunden. Weiß jemand vielleicht auch ob Shopware die Funktion direkt bereitstellt in der Zukunft?

Das ist eine heikle Sache, wenn ich jetzt ein Plugin dafür baue, wird es ungelogen mindestens 30 Tage dauern bis das Plugin in den Store kommt. Während dieser Zeit entwickeln andere Pluginhersteller evtl auch an dem Thema. Also so gern ich da etwas bauen würde, evtl auch als Goodie - bei den aktuellen Wartezeiten zur Pluginfreigabe beschäftige ich mich lieber mit anderen Konzepten. 

2 „Gefällt mir“

@Moorleiche schrieb:

@NeoRetro schrieb:

Gibt es im Store eigentlich wo ein Plugin dafür? Hab leider noch keines gefunden. Weiß jemand vielleicht auch ob Shopware die Funktion direkt bereitstellt in der Zukunft?

Das ist eine heikle Sache, wenn ich jetzt ein Plugin dafür baue, wird es ungelogen mindestens 30 Tage dauern bis das Plugin in den Store kommt. Während dieser Zeit entwickeln andere Pluginhersteller evtl auch an dem Thema. Also so gern ich da etwas bauen würde, evtl auch als Goodie - bei den aktuellen Wartezeiten zur Pluginfreigabe beschäftige ich mich lieber mit anderen Konzepten. 

Hallo Moorleiche,

vielen Dank für deine Antwort, mein Post war auch eher für die Allgemeinheit gedacht. Verstehe Dich hier voll und ganz.  

Hallo @riconet, leider habe ich die Benachrichtigung über deinen Kommentar erst heute erhalten. Hier ist die Repo auf github https://github.com/seriewe/DigaCommands

 

Bitte auf eigene Gefahr verwenden und am besten auf einer Dev Umgebung Testen, ob das für eure Version funktioniert. 

 

Gruß Sergej

@riconet schrieb:

Das wäre wirklich super wenn du deine Erweiterung zur Verfügung stellen könntest @seriewe

1 „Gefällt mir“

Ich fänd noch eine Aussage z.B. von [@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)‍ super, ob das löschen von Bestellungen per DAL ungefährlich ist.
Weil, wenn es nur das ist verstehe ich den Grund nicht, dass es im Admin nicht zur Verfügung steht.
Signalisiert mir eher, dass da doch vielleicht mehr hinter steckt? … Falls nicht, wäre das ja wenigstens für uns schon einmal eine Möglichkeit zur Datenbereinigung :slight_smile:

Schöne Grüße,
Niklas

sind die Bestellungsdaten auch in den Kunden-Tabellen gespeichert?

Mir ist nicht ganz klar, warum weder der Kunde noch ein Admin eine Bestellung bei v6.2.0 stornieren kann !?

Kann mir das einer erklären ?

Momentan spiele ich nur mit Shopware v6.2.0 rum, aber so finde ich sie nicht einsetzbar !!!

Gerade, wenn man in der Testphase ist, muss man doch Testbestellungen wieder weg bekommen können !!!

Grüße

Torsten THTerra

 

In der Version 6.2.1 gibt es die Möglichkeit Bestellungen zu löschen - allerdings etwas eingeschränkt:
Shopware Issuetracker

Hintergrund dürfte „vermutlich“ die Rechtslage in Deutschland sein - Dokumente und Unterlagen wie z.B. Rechnungen, Bestellungen, Stornos, etc. revisionssicher aufzubewahren:

Auszug aus Wikipedia: Revisionssicherheit – Wikipedia

Revisionssicherheit bezieht sich rückblickend auf die Prüfbarkeit des eingesetzten Verfahrens der Aufbewahrung und somit nicht nur auf technische Komponenten, sondern auf die gesamte Lösung. Revisionssicherheit schließt sichere Abläufe, die Organisation des Anwenderunternehmens, die ordnungsgemäße Nutzung, den sicheren Betrieb und den Nachweis in einer Verfahrensdokumentation ein. Wesentliches Merkmal revisionssicherer Archivsysteme ist, dass die Informationen wieder auffindbar, nachvollziehbar, unveränderbar und verfälschungssicher archiviert sind. Revisionssichere Archivierung ist ein wesentlicher Bestandteil für die Compliance von Informationssystemen.

Deine Nummernkreise-Zähler z.B. für Rechnungsnummern müssen für das Finanzamt fortlaufend und Lückenlos sein - insbesondere wenn Shopware die Dokumente generiert.

Dennoch hätte ich mir auch eine Möglichkeit gewünscht, eine Art Testmodus für den Anfang oder auch für besondere Fälle (Systemupdate, Komponentenwechsel, etc.) zu haben.

Mfg