In Magento 2 we can cancel an order using below way, Pass Magento/Sales/Api/OrderManagementInterface as DI to __construct() function. We can use Interface method to cancel the order in Magento 2.
Below code snippets is used for cancel order.
<?php
public function __construct(
\Magento\Sales\Api\OrderManagementInterface $orderManagement
) {
$this->orderManagement = $orderManagement;
}
/**
* int $orderId
* Order cancel by order id $orderId
*/
public function cancelOrder($orderId) {
try {
$this->orderManagement->cancel($orderId);
return __('You canceled the order successfully.');
} catch (\Exception $e) {
return __('You have not canceled the order.');
}
}
Call function like below from template or any PHP file, $orderId Must be an integer.
$orderId = 1;
$this->cacelOrder($orderId);
The result will be getting based on order success like, You canceled the order successfully otherwise result will be like for error, You have not canceled the order.
