Effacer toutes les données de commandes dans Magento 2

ATTENTION, CET ARTICLE EST DESTINÉ AUX ADMINISTRATEURS AYANT UN MINIMUM DE CONNAISSANCES MYSQL.

La phase de test est terminée, et vous êtes prêt à ouvrir votre boutique sous Magento 2, mais les tests ont laissé pas mal de traces dans la base de données ? Magento 2 ne dispose malheureusement pas d'outil admin pour effacer cela, à moins d'installer des composants tierces.
Lorsque votre phase de tests est terminée, vous pouvez néanmoins effacer le tout, après avoir effectué un backup par sécurité, en vous connectant directement via phpMyAdmin et en exécutant la requête (remplacer prfx par le préfixe de vos tables dans la base de données) :

SET FOREIGN_KEY_CHECKS=0;

# Nettoyage de l'historique des commandes
TRUNCATE TABLE `prfx_sales_bestsellers_aggregated_daily`;
TRUNCATE TABLE `prfx_sales_bestsellers_aggregated_monthly`;
TRUNCATE TABLE `prfx_sales_bestsellers_aggregated_yearly`;

# Nettoyage des infos de commandes
TRUNCATE TABLE `prfx_sales_creditmemo`;
TRUNCATE TABLE `prfx_sales_creditmemo_comment`;
TRUNCATE TABLE `prfx_sales_creditmemo_grid`;
TRUNCATE TABLE `prfx_sales_creditmemo_item`;
TRUNCATE TABLE `prfx_sales_invoice`;
TRUNCATE TABLE `prfx_sales_invoiced_aggregated`;
TRUNCATE TABLE `prfx_sales_invoiced_aggregated_order`;
TRUNCATE TABLE `prfx_sales_invoice_comment`;
TRUNCATE TABLE `prfx_sales_invoice_grid`;
TRUNCATE TABLE `prfx_sales_invoice_item`;
TRUNCATE TABLE `prfx_sales_order`;
TRUNCATE TABLE `prfx_sales_order_address`;
TRUNCATE TABLE `prfx_sales_order_aggregated_created`;
TRUNCATE TABLE `prfx_sales_order_aggregated_updated`;
TRUNCATE TABLE `prfx_sales_order_grid`;
TRUNCATE TABLE `prfx_sales_order_item`;
TRUNCATE TABLE `prfx_sales_order_payment`;
TRUNCATE TABLE `prfx_sales_order_status_history`;
TRUNCATE TABLE `prfx_sales_order_tax`;
TRUNCATE TABLE `prfx_sales_order_tax_item`;
TRUNCATE TABLE `prfx_sales_payment_transaction`;
TRUNCATE TABLE `prfx_sales_refunded_aggregated`;
TRUNCATE TABLE `prfx_sales_refunded_aggregated_order`;
TRUNCATE TABLE `prfx_sales_shipment`;
TRUNCATE TABLE `prfx_sales_shipment_comment`;
TRUNCATE TABLE `prfx_sales_shipment_grid`;
TRUNCATE TABLE `prfx_sales_shipment_item`;
TRUNCATE TABLE `prfx_sales_shipment_track`;
TRUNCATE TABLE `prfx_sales_shipping_aggregated`;
TRUNCATE TABLE `prfx_sales_shipping_aggregated_order`;

# Nettoyage des infos panier
TRUNCATE TABLE `prfx_quote`;
TRUNCATE TABLE `prfx_quote_address`;
TRUNCATE TABLE `prfx_quote_address_item`;
TRUNCATE TABLE `prfx_quote_id_mask`;
TRUNCATE TABLE `prfx_quote_item`;
TRUNCATE TABLE `prfx_quote_item_option`;
TRUNCATE TABLE `prfx_quote_payment`;
TRUNCATE TABLE `prfx_quote_shipping_rate`;

# Remise à zéro des indexs (pour que les numéros de commandes démarrent à 1)
TRUNCATE TABLE `prfx_sequence_invoice_1`;
TRUNCATE TABLE `prfx_sequence_order_1`;
TRUNCATE TABLE `prfx_sequence_shipment_1`;
TRUNCATE TABLE `prfx_sequence_creditmemo_1`;

SET FOREIGN_KEY_CHECKS=1;

Ces tables peuvent également être vidées une par une sur l'inteface phpMyAdmin.

Cette requête a été testée sous la dernière version de Magento 2 (2.1.7) mais il est toujours préférable de faire un backup avant de la lancer.

BLOG COMMENTS POWERED BY DISQUS