Magento 2: Löschen von Bestellungen aus der Datenbank


10

Wie kann ich die in meinem Geschäft erstellten Testaufträge löschen? Ich habe die Datenbank geöffnet, konnte aber die Auftragstabelle nicht finden. Bitte helfen Sie mir, die Bestellungen zu löschen. Ich verwende die spätere Version von Magento 2.

Antworten:


8

Ich empfehle Ihnen, direkte Probleme mit SQL zu vermeiden.

Sie können jede gute Erweiterung wie Mageplaza verwenden

Eine andere Möglichkeit besteht darin, ein Skript im Stammverzeichnis zu erstellen und die Reihenfolge programmgesteuert zu löschen

Sie können eine Datei im Stammverzeichnis mit folgendem Code erstellen:

<?php

ini_set('error_reporting', E_ALL);
ini_set("display_errors", "1");

use Magento\Framework\App\Bootstrap;
require 'app/bootstrap.php';

$bootstrap = Bootstrap::create(BP, $_SERVER);
$objectManager = $bootstrap->getObjectManager();
$registry = $objectManager->get('Magento\Framework\Registry');
$state = $objectManager->get('Magento\Framework\App\State');
$state->setAreaCode('frontend');

$ids = array(1,2,3,4); // your order_id 

foreach ($ids as $id) {

    $order = $objectManager->create('Magento\Sales\Model\Order')->load($id);
    $registry->register('isSecureArea','true');
    $order->delete();
    $registry->unregister('isSecureArea');
    echo "order deleted";

}

Ich bearbeite

Wenn Sie die Bestellung mithilfe eines Skripts löschen möchten, können Sie den obigen Code in den Stammordner von magento einfügen. Anschließend können Sie die URL im Browser drücken.

Zum Beispiel ist Ihr Magento unter www.example.com installiert und Ihr Dateiname lautet: deleteOrder.phpSie können es ausführen unter:

 www.example.com/deleteOrder.php

Wenn Sie die Erweiterung installieren möchten, müssen Sie

- Extract folder at [magentoRoot]/app/code
- Open terminal and run cd [magentoRoot] //change to root dir
- php bin/magento setup:upgrade
- php bin/magento cache:flush
- php bin/magento setup:static-content:deploy (only required in production mode)

Sie finden das Dokument auch auf der offiziellen Website


Aber das ist nicht kostenlos, oder?
Elisha Senoo

Das von mir freigegebene Modul ist kostenlos. Wenn Sie nicht mit dem Modul arbeiten möchten, verwenden Sie einfach ein einmaliges Skript.
Pawan

Denn sobald wir die Dummy-Bestellung löschen, werden wir diese Erweiterung selten verwenden.
Pawan

Willkommen bei ElishaSenoo. Gehst du mit Modul oder Skript?
Pawan

Ich gehe jetzt mit Modul.
Elisha Senoo

4

Sie können alle Bestellungen, Bestellhistorien, Sendungen, Rechnungen, Gutschriften sowie Angebote und Angebotsartikel aus der Datenbank löschen, indem Sie SQL folgendermaßen vorgehen:

SET FOREIGN_KEY_CHECKS=0;

# Bestellverlauf bereinigen

TRUNCATE TABLE `sales_bestsellers_aggregated_daily`;
TRUNCATE TABLE `sales_bestsellers_aggregated_monthly`;
TRUNCATE TABLE `sales_bestsellers_aggregated_yearly`;

# Bestellinformationen reinigen

TRUNCATE TABLE `sales_creditmemo`;
TRUNCATE TABLE `sales_creditmemo_comment`;
TRUNCATE TABLE `sales_creditmemo_grid`;
TRUNCATE TABLE `sales_creditmemo_item`;
TRUNCATE TABLE `sales_invoice`;
TRUNCATE TABLE `sales_invoiced_aggregated`;
TRUNCATE TABLE `sales_invoiced_aggregated_order`;
TRUNCATE TABLE `sales_invoice_comment`;
TRUNCATE TABLE `sales_invoice_grid`;
TRUNCATE TABLE `sales_invoice_item`;
TRUNCATE TABLE `sales_order`;
TRUNCATE TABLE `sales_order_address`;
TRUNCATE TABLE `sales_order_aggregated_created`;
TRUNCATE TABLE `sales_order_aggregated_updated`;
TRUNCATE TABLE `sales_order_grid`;
TRUNCATE TABLE `sales_order_item`;
TRUNCATE TABLE `sales_order_payment`;
TRUNCATE TABLE `sales_order_status_history`;
TRUNCATE TABLE `sales_order_tax`;
TRUNCATE TABLE `sales_order_tax_item`;
TRUNCATE TABLE `sales_payment_transaction`;
TRUNCATE TABLE `sales_refunded_aggregated`;
TRUNCATE TABLE `sales_refunded_aggregated_order`;
TRUNCATE TABLE `sales_shipment`;
TRUNCATE TABLE `sales_shipment_comment`;
TRUNCATE TABLE `sales_shipment_grid`;
TRUNCATE TABLE `sales_shipment_item`;
TRUNCATE TABLE `sales_shipment_track`;
TRUNCATE TABLE `sales_shipping_aggregated`;
TRUNCATE TABLE `sales_shipping_aggregated_order`;

Warenkorbinfos reinigen

TRUNCATE TABLE `quote`;
TRUNCATE TABLE `quote_address`;
TRUNCATE TABLE `quote_address_item`;
TRUNCATE TABLE `quote_id_mask`;
TRUNCATE TABLE `quote_item`;
TRUNCATE TABLE `quote_item_option`;
TRUNCATE TABLE `quote_payment`;
TRUNCATE TABLE `quote_shipping_rate`;

Indizes zurücksetzen (wenn Sie möchten, dass Ihre Bestellnummer auf 1 zurückgesetzt wird

TRUNCATE TABLE sequence_invoice_1;
TRUNCATE TABLE sequence_order_1;
TRUNCATE TABLE sequence_shipment_1;
TRUNCATE TABLE sequence_creditmemo_1;


SET FOREIGN_KEY_CHECKS=1;

Bevor Sie dies tun, erstellen Sie eine Sicherungskopie Ihrer Datenbank.

Hoffe das wird helfen.


Was ist, wenn ich bestimmte Bestellungen löschen möchte, nicht alle?
Elisha Senoo

Sie überprüfen die Entitäts-ID dieser und löschen diese entsprechend. Auch wenn Sie die Erweiterung verwenden möchten, können Sie github.com/mageplaza/magento-2-delete-orders
Sukumar Gorai

Ich hoffe die Erweiterung ist kostenlos?
Elisha Senoo

Die Erweiterungs-URL stammt von GitHub. Es kann also kostenlos heruntergeladen werden.
Sukumar Gorai

Ich habe das gesehen, ich wollte nur sicher sein. Vielen Dank
Elisha Senoo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.