Magento 2: como excluir pedidos do banco de dados

10

Como posso excluir os pedidos de teste criados em minha loja? Abri o banco de dados, mas não consegui encontrar a tabela de pedidos. Ajude-me a excluir os pedidos. Estou usando a versão posterior do Magento 2.

SalesforceElearner
fonte

Respostas:

8

Eu sugiro que você evite a bagunça direta com o SQL.

Você pode usar qualquer boa extensão como o Mageplaza

Outra opção é criar um script na raiz e excluir a ordem programaticamente

Você pode criar um arquivo na raiz com o seguinte código:

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

}

Editar I

Se você deseja excluir a ordem usando o script, você pode colocar o código acima na pasta raiz do magento. Depois de clicar no URL no navegador.

Por exemplo, seu magento está instalado em www.example.com e seu nome de arquivo é que deleteOrder.phpvocê pode executá-lo:

 www.example.com/deleteOrder.php

Se você deseja instalar a extensão, precisa

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

Você também pode encontrar documentos no Site Oficial

Pawan
fonte
Mas isso não é de graça, certo?
Elisha Senoo
O módulo que eu compartilhei é gratuito, se você não quiser usar o módulo, basta usar um script de tempo.
Pawan
porque depois que excluirmos a ordem fictícia, raramente usaremos essa extensão.
Pawan
Bem-vindo @ElishaSenoo. Você vai com o módulo ou script?
Pawan
Eu estou indo com o módulo por enquanto.
Elisha Senoo
4

Você pode excluir todos os pedidos, histórico de pedidos, remessas, faturas, notas de crédito, também as cotações, itens de cotação do banco de dados seguindo o SQL:

SET FOREIGN_KEY_CHECKS=0;

# Histórico de pedidos limpos

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

# Informações da ordem limpa

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

Informações do carrinho limpo

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

Redefina os índices (se você quiser que o número de seus pedidos comece de volta para 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;

Antes de fazer o procedimento acima, faça um backup do seu banco de dados.

Espero que isso ajude.

Sukumar Gorai
fonte
E se eu quiser excluir pedidos específicos, não todos?
Elisha Senoo
Você verifica o ID da entidade e os exclui de acordo. Além disso, se você quiser usar extensão então você pode tentar github.com/mageplaza/magento-2-delete-orders
Sukumar Gorai
Espero que a extensão seja gratuita?
Elisha Senoo
O URL de extensão é do GitHub. Portanto, é gratuito para download.
Sukumar Gorai
Vi isso, só queria ter certeza. Obrigado
Elisha Senoo