Magento 2: come eliminare gli ordini dal database


10

Come posso eliminare gli ordini di prova creati nel mio negozio? Ho aperto il database ma non sono riuscito a trovare la tabella degli ordini. Aiutatemi a cancellare gli ordini. Sto usando la versione successiva di Magento 2.

Risposte:


8

Ti consiglio di evitare il pasticcio diretto con SQL.

Puoi usare qualsiasi buona estensione come Mageplaza

Un'altra opzione è quella di creare uno script su root ed eliminare l'ordine a livello di codice

È possibile creare un file alla radice con il seguente codice:

<?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";

}

Modifica I.

Se vuoi cancellare l'ordine usando lo script puoi inserire il codice sopra nella cartella principale di magento, dopodiché puoi premere l'URL nel browser.

Ad esempio, il tuo magento è installato su www.example.com e il nome del tuo file è deleteOrder.phpche puoi eseguirlo:

 www.example.com/deleteOrder.php

Se si desidera installare l'estensione è necessario

- 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)

Puoi anche trovare un documento sul sito ufficiale


Ma questo non è gratuito, giusto?
Elisha Senoo,

Il modulo che ho condiviso è gratuito, se non vuoi andare con il modulo usa semplicemente una volta lo script.
Pawan,

perché una volta eliminato l'ordine fittizio, useremo raramente tale estensione.
Pawan,

Benvenuto @ElishaSenoo. Stai andando con il modulo o lo script?
Pawan,

Per ora vado con il modulo.
Elisha Senoo,

4

Puoi eliminare tutti gli ordini, la cronologia degli ordini, le spedizioni, le fatture, le note di credito, anche i preventivi, gli articoli di preventivo dal database tramite il seguente SQL:

SET FOREIGN_KEY_CHECKS=0;

# Cronologia ordini pulita

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

# Informazioni ordine pulito

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`;

Informazioni pulite sul carrello

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`;

Reimposta indici (se desideri che il numero degli ordini ricomincia da 1

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;

Prima di fare sopra fai un backup del tuo database.

Spero che questo possa aiutare.


Cosa succede se desidero eliminare determinati ordini, non tutti?
Elisha Senoo,

Controlli l'ID entità di quelli e li elimini di conseguenza. Inoltre, se desideri utilizzare l'estensione, puoi provare github.com/mageplaza/magento-2-delete-orders
Sukumar Gorai,

Spero che l'estensione sia gratuita?
Elisha Senoo,

L'URL di estensione proviene da GitHub. Quindi è gratuito da scaricare.
Sukumar Gorai,

L'ho visto, volevo solo esserne sicuro. Grazie
Elisha Senoo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.