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.