diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Handler/State.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Handler/State.php index 47395b17afee8..5ad1c913efc66 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Handler/State.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Handler/State.php @@ -41,6 +41,8 @@ public function check(Order $order) } elseif ($currentState === Order::STATE_PROCESSING && !$order->canShip()) { $order->setState(Order::STATE_COMPLETE) ->setStatus($order->getConfig()->getStateDefaultStatus(Order::STATE_COMPLETE)); + } elseif ($order->getIsVirtual() && $order->getStatus() === Order::STATE_CLOSED) { + $order->setState(Order::STATE_CLOSED); } } return $this;