ストアで作成したテスト注文を削除するにはどうすればよいですか?データベースを開きましたが、注文テーブルが見つかりませんでした。注文の削除を手伝ってください。Magento 2の新しいバージョンを使用しています。
ストアで作成したテスト注文を削除するにはどうすればよいですか?データベースを開きましたが、注文テーブルが見つかりませんでした。注文の削除を手伝ってください。Magento 2の新しいバージョンを使用しています。
回答:
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";
}
編集I
スクリプトを使用して注文を削除する場合は、上記のコードを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)
公式サイトでもドキュメントを見つけることができます
次の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`;
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;
上記を行う前に、データベースのバックアップを取ってください。
これがお役に立てば幸いです。