Magento – How to delete an order programatically in Magento 2

deletemagento2ordersprogrammatically

How can we delete a Magento2 order programatically? There's ways to do this in Magento 1.X. Is it the same methodology for Magento2 as well?

Best Answer

You can use following code to delete the order.

<?php

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$registry = $objectManager->get('Magento\Framework\Registry');

$id = 10; // your order_id 
$order = $objectManager->create('Magento\Sales\Model\Order')->load($id);

// $incrementId = 'xxxxxxxxx';
// $order = $objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId($incrementId);

$registry->register('isSecureArea','true');
$order->delete();
$registry->unregister('isSecureArea'); 

Note: I used the objectManager for the demonstration. Always use dependency injection.

Related Topic