Preloader
Magento 2
  • Estimated reading time: 2 Minutes

How to reset test sales/orders and dashboard information in Magento 2.3.2

Yeah, a lot of developers love to deploy applications and simply run test stuff in production servers. That's pretty irresponsable, however there are some of us that love to have a local version of the project that works properly and exactly like the production version. We do this basically to optimize the development process and test stuff locally, where no one will be hurted.

While i was learning magento, i quickly recognize how necessary it was a script to reset the test information about the sales in the application. Magento doesn't offer this feature by default, however if you are able to run SQL on the server, you can use the following script that will do the trick for you:

As every security measure, backup first your database before running the script.

SET FOREIGN_KEY_CHECKS=0;

# Clean order history
TRUNCATE TABLE `sales_bestsellers_aggregated_daily`;
TRUNCATE TABLE `sales_bestsellers_aggregated_monthly`;
TRUNCATE TABLE `sales_bestsellers_aggregated_yearly`;

# Clean order infos
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`;

# Clean cart infos
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`;

# Reset indexes (if you want your orders number start back to 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;

This will remove all the orders and the dashboard information will be set to 0. Don't forget that if you run this script in PHPMyAdmin, you will need to uncheck as well the checkbox, otherwise the script won't run:

Foreigkey Check PHPMyAdmin run Script

Happy coding !

Share:
Carlos Delgado

Carlos Delgado

Senior Software Engineer at Software Medico. Interested in programming since he was 14 years old, Carlos is a self-taught programmer and founder and author of most of the articles at Our Code World.

Related articles
Why Use Magento?
28 Nov, 2022
  • Estimated reading time: 3 Minutes
How to disable Magento 2 2FA plugin
15 Jul, 2022
  • Estimated reading time: 1 Minute
8 Best Magento Extensions That Will Boost Your Online Business
28 Nov, 2019
  • Estimated reading time: 7 Minutes
7 Magento Development Trends That Are Making It Big Right Now
27 Aug, 2019
  • Estimated reading time: 4 Minutes
Weekly trending
Our Sponsors

Our blog is proudly supported by industry-leading sponsors.