Yireo - Developer training

Open main menu
DeleteAnyOrder 2

Magento 2 Extension

DeleteAnyOrder 2

Delete orders safely and reliably from your Magento 2 database

Save removal of order data

Magento does not allow you to delete orders. While this decision makes good sense, many users are still in need of this functionality. Our Delete-Any-Order extension gives you this functionality in a safe way without danger of you loosing data and without leaving left-overs.

Already used in more than 1082 shops
  • 100% open source and well-written
  • compliant with modern Magento standards
  • Free with no strings attached
  • Community collaboration via GitHub

Latest release: 1.0.6

Easy to use

The Delete-Any-Order extension is quickly installed and after this, dead-easy to use: Simply zoom into an order and delete it - either via the orders grid or the order page.

Retaining integrity

Instead of just deleting orders, which is peanuts, Delete-Any-Order also ships with numerous ways to keep the database integrity intact. And checks if this is still the case.

Jisse Reitsma

This extension has been created by Jisse Reitsma

This extension has been written - with love - by Jisse Reitsma, founder of Yireo, three times Magento Master, partner of ExtDN, trainer and author. Jisse has been in the Magento ecosystem for many years and has created numerous Magento extensions. He also has been pushing better coding practices, like CI/CD, clean coding, coding standards and testing.

Packages & pricing

This extension is hosted on GitHub:

We give you straight-forward functionality

Delete Magento orders without you needing to worry about it

DeleteAnyOrder 2

Select an order & delete it

It sounds so simple: Selecting a Magento order and deleting it - either through a massaction option in the grid, or a button on the order page. However, Magento - by default - does not allow for this, because following bookkeeping terms this should not be allowed. But if Magento is not used for bookkeeping, this matters less. Our extension offers a fundamental feature that every shop owner might need.

DeleteAnyOrder 2

Maintain database integrity

When removing an order, some things will still stick in the database: Grids are not updated, child entities will remain. This clutters your database and could lead potentially to corrupt databases. Our extension makes sure that all order-related information in the database remains intact. There are no left-overs. This makes our extension also GDPR-compliant: When a customer wants to be forgotten, our extension guarantees so.

DeleteAnyOrder 2

Proper code quality

This extension is well-written, following current Magento coding standards (like ExtDN, ECG2 and MEQP2) and is 100% open source. Any developer is able to pick up its source code and extend it where needed. Additionally, we have tests in case that we run with every major and major Magento 2 release, to prevent bugs from reaching your shop. You can trust our code.

Tip: Use our EmailTester extension
to preview emails with dummy orders. Once you are done testing, just remove the orders again.

Quick Start

Get up and running with your Yireo extension

Installation via composer URL

We recommend to install Magento 2 extensions via composer. See the Composer project for instructions on how to get composer up and running. Once composer is installed, use the following command to install our extension.

composer require yireo/magento2-deleteanyorder2

This will make composer download the package from Packagist. After the composer installation has finished, use the following commands to enable the module within Magento:

bin/magento module:enable Yireo_DeleteAnyOrder2
bin/magento cache:clean
bin/magento setup:upgrade

After these commands, the extension is ready for use in Magento. If you were already logged into the Magento Admin Panel, make sure to logout and log back in again, before proceeding. Do not forget to grab yourself a manual copy of our extension as a backup.

Manual installation

Please note that we strongly recommend using composer instead. If you bump into issues with this manual procedure, the first thing we need to ask is whether you have installed all dependencies, as mentioned in the composer.json file of this extension. If the composer.json file of this extension mentions requirements, you need to fulfill these requirements. This could involve checking for PHP requirements but also installing third party add-ons. Sounds difficult? Yes! That's why we can only recommend you to use composer. The manual installation does NOT make your life easier, even if you think it does.

Do use composer: It allows for dependency tracking and in the end, prevents breaking your site. However, in some cases, it might be required to do a non-composer installation. For these exceptional situations, download the module ZIP from our site (under the tab File Downloads). Next, create a folder with the following name and copy to the ZIP contents to it:


After the files have been uploaded, confirm that all files are in place. For instance, you should have a file like app/code/Yireo/DeleteAnyOrder2/etc/module.xml. Next, use the following commands to enable the module within Magento:

bin/magento module:enable Yireo_DeleteAnyOrder2
bin/magento cache:clean
bin/magento setup:upgrade

After these commands, the extension is ready for use in Magento. If you were already logged into the Magento Admin Panel, make sure to logout and log back in again, before proceeding. Do not forget to grab yourself a manual copy of our extension as a backup.


Head over to the GitHub repository for downloads: https://github.com/yireo/Yireo_DeleteAnyOrder2

Frequently Asked Questions

No. However, if you are making money with building multiple shops, we appreciate it if you subscribe for multiple subscriptions. That way - in the spirit of open source - you can help us develop useful extensions for you.

In bookkeeping terms, it's not correct to remove orders or to leave a gap in your order numbering. At least, that's what some bookkeepers will tell you. If you use Magento as a bookkeeping system, you shouldn't be removing invoices or orders, so you shouldn't even be looking at this extension. However, if you have an alternative bookkeeping system, you can use this extension. Everything is fine (according to us) as long as the bookkeeping is consistent.

Our extension not only deletes orders, but also makes sure all order-related information is actually gone from the database: This way, your database remains intact, does not grow in size over the years and is compliant to EU regulation (GDPRs Right To Be Forgotten).

Delete-Any-Order does not deal with any Magento reports or Magento statistics (like the one on the dashboard of the Magento Admin Panel), and therefor, when removing any order, none of the already made statistics and reports are modified.

However, the dashboard statistics and newly created reports are generated from the database, and because Delete-Any-Order removes orders from the database completely, this is still working as it should. However, for issues with these statistics and reports, you most likely need to discuss this on the Magento Forums - unless you have grounded reason to believe that Delete-Any-Order has not removed an order correctly.

No, it is not. As a policy, all our Yireo software is unencrypted - we do not make use of technologies like ionCube or ZendOptimizer. All PHP-code is open source, but for commercial extensions the code is only given to paying customers.

You probably would like to know if this extension is working under a specific Magento version 2.X.Y. However, from a technical point of view, the question is wrong: The major Magento version 2.X.Y is not semantical but instead used for marketing purposes. It doesn't give any guarantees.

Instead, we maintain compatibility with the actual modules that lie underneath (like Magento_Catalog or the Magento Framework). And version management for these dependencies is handled via composer. We strongly advice you to rely on composer to answer the question whether our extension works under a specific Magento version. This is the only way to guarantee compatibility in a professional way.

Alternatively, study our CHANGELOG for details on the progress we made.

This extension is offered for free. Feel free to go the GitHub repository (see the link under Quick Start> Downloads) and open an Issue there. Please note that this is a voluntary open source project. The more helpful you are in describing the issue at hand, the more likely volunteers can come in to help you with the issue.

We have spent years on optimizing our Magento 1 extension and were able to successfully move the logic to M2 as well. Also, we are part of ExtDN, various Magento working groups and expert-trainers in the field of Magento 2 development. In short, we know our stuff and are able to put down a cheap but high quality extension for you.


Getting support

If you run into problems, we are happy to help you out with the following resources:

  • Check FAQ on this page
  • See our Quick Start on this page
  • Open an Issue in the GitHub repository
    • Be as descriptive in your issue as possible
    • Do everything you can to troubleshoot the issue yourself
    • Understand that you are asking others to give up their free time

We usually respond in 24 hours but understand this is all done on a voluntary basis. Also note that we require you to collaborate together with us. Interpret errors as best as you can, before claiming our time. Free software does not automatically lead into free support as well.

Code of proper quality

Delete-Any-Order is written following standards like PSR-2, MEQP2, ECG and ExtDN. You can hook into the event sales_order_delete_after.

If you want to intercept methods using a Plugin, please let us know, so we can mark it as @api and make sure your changes remain for the future.

Developer notes

This extension violates some standards of ECG and EQP because it uses raw SQL queries to scan the database. This is intentional to guarantee performance.

This extension has been tested with 150.000 orders (generated using the Magento Performance Toolkits extra_large profile).

Supported Magento versions

  • 2.2 (2.2.5, 2.2.6, 2.2.7, 2.2.8, 2.2.9, 2.2.10)
  • 2.3 (2.3.2, 2.3.3, 2.3.4, 2.3.5, 2.3.5-p1, 2.3.5-p2, 2.3.6, 2.3.7, 2.3.7-p1, 2.3.7-p2)
  • 2.4 (2.4.0, 2.4.1, 2.4.2, 2.4.2-p1, 2.4.2-p2, 2.4.3, 2.4.4, 2.4.5)
The supported PHP versions equal the versions supported by Magento itself

Requirement details

  • magento/framework: ^101.0.1|^101.0|^102.0|^103.0
  • magento/module-backend: ^100.2|^101.0|^102.0
  • magento/module-sales: ^101.0|^102.0|^103.0
  • magento/module-store: ^100.2|^101.0
  • magento/module-ui: ^101.0


All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.


[1.0.6] - 26 May 2021

  • Delete in order overview asks confirmation

[1.0.5] - 29 July 2020

  • Magento 2.4 compatibility
  • Remove PHP dep from composer

[1.0.4] - May 2019

  • Stricter PHPCS fixes (PSR2, Magento2)
  • Add a KeepAChangelog standard
  • Lowered prices of extension packages


  • Fix invalid di.xml issue in 2.3.1

[1.0.3] - November 2018

  • Magento 2.3 compatibility

[1.0.2] - June 2018

  • Properly add dependencies

[1.0.1] - May 2018

  • Tests with Performance Toolkit (extra_large)
  • Optimize DELETE queries

[1.0.0] - March 2018

  • Add Delete mass action in order grid
  • CLI to delete, analyse and fix
  • Composer package
  • Integration tests
  • Unit tests

We are a proud member of ExtDN

ExtDN forms a network of Magento extension developers, that strive for a better extension quality - both on a technical level and from an end-users point of view. With industry leaders like Fooman and aHeadworks, ExtDN lifts up the Magento extension space to a new level. And Yireo is proud to be part of this.

Do not miss out on what we say

This will be the most interesting spam you've ever read

We don't write too commercial stuff, we focus on the technology (which we love) and we regularly come up with innovative solutions. Via our newsletter, you can keep yourself up to date on all of this coolness. Subscribing only takes seconds.

Sign up for the Yireo newsletter



GitHub organizations

Legal information

Other Yireo sites

Get Social

About Yireo