Magento 2: cara menghapus pesanan dari database

10

Bagaimana saya bisa menghapus pesanan tes yang dibuat di toko saya? Saya telah membuka database tetapi saya tidak dapat menemukan tabel pesanan. Tolong bantu saya untuk menghapus pesanan. Saya menggunakan versi Magento 2 yang lebih baru.

SalesforceElearner
sumber

Jawaban:

8

Saya sarankan Anda untuk menghindari kekacauan langsung dengan SQL.

Anda dapat menggunakan ekstensi yang bagus seperti Mageplaza

Pilihan lain adalah membuat skrip di root dan menghapus pesanan secara terprogram

Anda dapat membuat file di root dengan kode berikut:

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

}

Edit saya

Jika Anda ingin menghapus pesanan menggunakan skrip, Anda dapat memasukkan kode di atas pada folder root magento.Setelah itu Anda dapat menekan URL di browser.

Misalnya magento Anda dipasang di www.example.com dan nama file deleteOrder.phpAnda dapat dijalankan dengan:

 www.example.com/deleteOrder.php

Jika Anda ingin memasang ekstensi, Anda harus melakukannya

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

Anda juga dapat menemukan dokumen di Situs Resmi

Pawan
sumber
Tapi itu tidak gratis, bukan?
Elisha Senoo
Modul yang saya bagikan gratis, jika Anda tidak ingin menggunakan modul cukup gunakan satu skrip waktu.
Pawan
karena setelah kami menghapus pesanan boneka, kami jarang akan menggunakan ekstensi itu.
Pawan
Selamat Datang @ElishaSenoo. Apakah Anda menggunakan modul atau skrip?
Pawan
Saya akan menggunakan modul untuk saat ini.
Elisha Senoo
4

Anda dapat menghapus semua pesanan, riwayat pesanan, pengiriman, faktur, memo kredit, juga kutipan, item kutipan dari database dengan mengikuti SQL:

SET FOREIGN_KEY_CHECKS=0;

# Bersihkan riwayat pesanan

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

# Bersihkan info pesanan

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

Bersihkan info keranjang

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

Atur ulang indeks (jika Anda ingin nomor pesanan Anda mulai kembali ke 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;

Sebelum melakukan di atas, buat cadangan dari basis data Anda.

Semoga ini bisa membantu.

Sukumar Gorai
sumber
Bagaimana jika saya ingin menghapus pesanan tertentu, tidak semua?
Elisha Senoo
Anda memeriksa id entitas dari mereka dan menghapusnya sesuai. Juga jika Anda ingin menggunakan ekstensi maka Anda dapat mencoba github.com/mageplaza/magento-2-delete-orders
Sukumar Gorai
Saya harap ekstensi ini gratis?
Elisha Senoo
URL ekstensi berasal dari GitHub. Jadi gratis untuk diunduh.
Sukumar Gorai
Saya melihat itu, saya hanya ingin memastikan. Terima kasih
Elisha Senoo