Magento 2: cách xóa đơn hàng khỏi cơ sở dữ liệu


10

Làm thế nào tôi có thể xóa các đơn đặt hàng thử nghiệm được tạo trong cửa hàng của tôi? Tôi đã mở cơ sở dữ liệu nhưng tôi không thể tìm thấy bảng thứ tự. Xin hãy giúp tôi xóa các đơn đặt hàng. Tôi đang sử dụng phiên bản mới hơn của Magento 2.

Câu trả lời:


8

Tôi đề nghị bạn tránh lộn xộn trực tiếp với SQL.

Bạn có thể sử dụng bất kỳ tiện ích mở rộng tốt nào như Mageplaza

Một tùy chọn khác là tạo một tập lệnh trên root và xóa thứ tự lập trình

Bạn có thể tạo một tập tin gốc bằng mã sau:

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

}

Chỉnh sửa tôi

Nếu bạn muốn xóa thứ tự bằng cách sử dụng tập lệnh, bạn có thể đặt mã ở trên vào thư mục gốc của magento. Sau đó, bạn có thể nhấn URL trong trình duyệt.

Ví dụ: magento của bạn được cài đặt tại www.example.com và tên tệp của bạn là deleteOrder.phpbạn có thể chạy nó bằng cách:

 www.example.com/deleteOrder.php

Nếu bạn muốn cài đặt tiện ích mở rộng, bạn cần phải

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

Bạn cũng có thể tìm tài liệu tại Trang web chính thức


Nhưng điều đó không miễn phí, phải không?
Elisha Senoo

Mô-đun tôi chia sẻ là miễn phí, nếu bạn không muốn sử dụng mô-đun chỉ cần sử dụng tập lệnh một lần.
Pawan

bởi vì một khi chúng tôi xóa thứ tự giả, chúng tôi sẽ hiếm khi sử dụng tiện ích mở rộng đó.
Pawan

Chào mừng @ElishaSenoo. Bạn đang đi với mô-đun hoặc kịch bản?
Pawan

Tôi đang đi với mô-đun bây giờ.
Elisha Senoo

4

Bạn có thể xóa tất cả các đơn đặt hàng, lịch sử đặt hàng, lô hàng, hóa đơn, ghi nhớ tín dụng, cũng như các báo giá, trích dẫn các mục từ cơ sở dữ liệu bằng cách làm theo SQL:

SET FOREIGN_KEY_CHECKS=0;

# Lịch sử đặt hàng sạch

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

# Làm sạch đơn hàng

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

Làm sạch giỏ hàng

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

Đặt lại chỉ mục (nếu bạn muốn số đơn đặt hàng của bạn bắt đầu trở lại 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;

Trước khi làm ở trên hãy sao lưu cơ sở dữ liệu của bạn.

Hy vọng điều này sẽ giúp.


Điều gì xảy ra nếu tôi muốn xóa các đơn đặt hàng cụ thể, không phải tất cả?
Elisha Senoo

Bạn kiểm tra id thực thể của những cái đó và xóa chúng. Ngoài ra nếu bạn muốn sử dụng tiện ích mở rộng thì bạn có thể thử github.com/mageplaza/magento-2-delete-nings
Sukumar Gorai

Tôi hy vọng phần mở rộng là miễn phí?
Elisha Senoo

Url mở rộng là từ GitHub. Vì vậy, nó miễn phí để tải về.
Sukumar Gorai

Tôi thấy điều đó, tôi chỉ muốn chắc chắn. Cảm ơn
Elisha Senoo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.