Magento 2: как удалить заказы из базы данных

10

Как я могу удалить тестовые заказы, созданные в моем магазине? Я открыл базу данных, но не смог найти таблицу заказов. Пожалуйста, помогите мне удалить заказы. Я использую более позднюю версию Magento 2.

SalesforceElearner
источник

Ответы:

8

Я предлагаю вам избежать прямого беспорядка с SQL.

Вы можете использовать любое хорошее расширение, как Mageplaza

Другим вариантом является создание скрипта в корне и удаление заказа программно

Вы можете создать файл в корне со следующим кодом:

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

}

Изменить я

Если вы хотите удалить заказ с помощью скрипта, вы можете поместить указанный выше код в корневую папку magento. После этого вы можете нажать URL в браузере.

Например, ваш magento установлен на www.example.com, а имя вашего файла deleteOrder.phpвы можете запустить:

 www.example.com/deleteOrder.php

Если вы хотите установить расширение, вам нужно

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

Вы также можете найти документ на официальном сайте

Паван
источник
Но это не бесплатно, верно?
Елисей Сену
Модуль, которым я поделился, бесплатный, если вы не хотите использовать модуль, просто используйте одноразовый скрипт.
Паван
потому что, как только мы удалим фиктивный заказ, мы редко будем использовать это расширение.
Паван
Добро пожаловать @ElishaSenoo. Собираетесь ли вы с модулем или сценарием?
Паван
Я собираюсь с модулем на данный момент.
Елисей Сену
4

Вы можете удалить все заказы, историю заказов, отгрузки, счета-фактуры, кредитовые авизо, а также кавычки, элементы кавычек из базы данных, следуя SQL:

SET FOREIGN_KEY_CHECKS=0;

# Очистить историю заказов

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

# Чистый порядок информации

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

Чистая информация о корзине

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

Сбросить индексы (если вы хотите, чтобы номер вашего заказа начинался с 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;

Прежде чем делать выше, сделайте резервную копию вашей базы данных.

Надеюсь, это поможет.

Сукумар Горай
источник
Что если я хочу удалить определенные заказы, а не все?
Елисей Сену
Вы проверяете идентификатор объекта тех и удаляете те соответственно. Также, если вы хотите использовать расширение, вы можете попробовать github.com/mageplaza/magento-2-delete-orders
Sukumar Gorai
Надеюсь расширение бесплатное?
Елисей Сену
URL-адрес расширения от GitHub. Так что это бесплатно для скачивания.
Сукумар Горай
Я видел это, я просто хотел быть уверен. Спасибо
Елисей Сену