Magento 2: comment supprimer des commandes de la base de données

10

Comment puis-je supprimer les commandes de test créées dans mon magasin? J'ai ouvert la base de données mais je n'ai pas trouvé la table de commande. Aidez-moi à supprimer les commandes. J'utilise la dernière version de Magento 2.

SalesforceElearner
la source

Réponses:

8

Je vous suggère d'éviter le désordre direct avec SQL.

Vous pouvez utiliser n'importe quelle bonne extension comme Mageplaza

Une autre option consiste à créer un script à la racine et à supprimer l'ordre par programme

Vous pouvez créer un fichier à la racine avec le code suivant:

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

}

Edit I

Si vous souhaitez supprimer l'ordre à l'aide d'un script, vous pouvez mettre le code ci-dessus dans le dossier racine de magento.Après cela, vous pouvez appuyer sur URL dans le navigateur.

Par exemple, votre magento est installé sur www.example.com et votre nom de fichier est que deleteOrder.phpvous pouvez l'exécuter par:

 www.example.com/deleteOrder.php

Si vous souhaitez installer l'extension, vous devez

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

Vous pouvez également trouver un document sur le site officiel

Pawan
la source
Mais ce n'est pas gratuit, non?
Elisha Senoo du
Le module que j'ai partagé est gratuit, si vous ne voulez pas utiliser le module, utilisez simplement un script unique.
Pawan
car une fois la commande fictive supprimée, nous utiliserons rarement cette extension.
Pawan
Bienvenue @ElishaSenoo. Allez-vous avec le module ou le script?
Pawan
Je vais avec le module pour l'instant.
Elisha Senoo du
4

Vous pouvez supprimer toutes les commandes, l'historique des commandes, les expéditions, les factures, les notes de crédit, ainsi que les devis, les articles de devis de la base de données en suivant SQL:

SET FOREIGN_KEY_CHECKS=0;

# Historique des commandes propres

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

# Informations d'ordre propre

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

Informations sur le panier propre

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

Réinitialiser les index (si vous voulez que votre numéro de commande revienne à 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;

Avant de faire ci-dessus, faites une sauvegarde de votre base de données.

J'espère que cela vous aidera.

Sukumar Gorai
la source
Que faire si je souhaite supprimer des commandes particulières, pas toutes?
Elisha Senoo,
Vous vérifiez l'ID d'entité de ceux-ci et les supprimez en conséquence. Aussi, si vous souhaitez utiliser l'extension, vous pouvez essayer github.com/mageplaza/magento-2-delete-orders
Sukumar Gorai
J'espère que l'extension est gratuite?
Elisha Senoo du
L'URL de l'extension provient de GitHub. Le téléchargement est donc gratuit.
Sukumar Gorai
Je l'ai vu, je voulais juste être sûr. Merci
Elisha Senoo