Magento 2: como borrar pedidos de la base de datos

10

¿Cómo puedo eliminar los pedidos de prueba creados en mi tienda? Abrí la base de datos pero no pude encontrar la tabla de pedidos. Por favor, ayúdame a eliminar los pedidos. Estoy usando la versión posterior de Magento 2.

SalesforceElearner
fuente

Respuestas:

8

Le sugiero que evite el desorden directo con SQL.

Puedes usar cualquier buena extensión como Mageplaza

Otra opción es crear un script en la raíz y eliminar el orden mediante programación.

Puede crear un archivo en la raíz con el siguiente 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

Si desea eliminar el pedido utilizando el script, puede colocar el código anterior en la carpeta raíz de magento. Luego puede presionar la URL en el navegador.

Por ejemplo, su magento está instalado en www.example.com y su nombre de archivo deleteOrder.phppuede ejecutarlo:

 www.example.com/deleteOrder.php

Si desea instalar la extensión necesita

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

También puede encontrar documentos en el sitio oficial

Pawan
fuente
Pero eso no es gratis, ¿verdad?
Elisha Senoo
El módulo que compartí es gratis, si no quieres ir con el módulo simplemente usa un script de una vez.
Pawan
porque una vez que eliminemos la orden ficticia, rara vez usaremos esa extensión.
Pawan
Bienvenido @ElishaSenoo. ¿Vas con módulo o script?
Pawan
Voy con el módulo por ahora.
Elisha Senoo
4

Puede eliminar todos los pedidos, historial de pedidos, envíos, facturas, notas de crédito, también las cotizaciones, artículos de cotización de la base de datos siguiendo SQL:

SET FOREIGN_KEY_CHECKS=0;

# Historial de pedidos limpios

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

# Información de orden limpia

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

Información del carro limpio

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

Restablecer índices (si desea que su número de pedidos comience de nuevo a 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 hacer lo anterior, realice una copia de seguridad de su base de datos.

Espero que esto ayude.

Sukumar Gorai
fuente
¿Qué sucede si quiero eliminar pedidos particulares, no todos?
Elisha Senoo
Verifica la identificación de la entidad de esos y los elimina en consecuencia. Además, si desea utilizar la extensión, puede probar github.com/mageplaza/magento-2-delete-orders
Sukumar Gorai el
¿Espero que la extensión sea gratuita?
Elisha Senoo
La URL de extensión es de GitHub. Entonces es gratis para descargar.
Sukumar Gorai
Vi eso, solo quería estar seguro. Gracias
Elisha Senoo