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.

SalesforceElearner
quelle

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

Pawan
quelle
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.

Sukumar Gorai
quelle
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