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.

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


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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.