diff --git a/src/Core/Api/WebHooks/Controller/WebHookController.php b/src/Core/Api/WebHooks/Controller/WebHookController.php index 914bf31..c85cc47 100644 --- a/src/Core/Api/WebHooks/Controller/WebHookController.php +++ b/src/Core/Api/WebHooks/Controller/WebHookController.php @@ -642,13 +642,19 @@ private function unholdDelivery(string $orderId, Context $context): void * @var OrderDeliveryStateHandler $orderDeliveryStateHandler */ $order = $this->getOrderEntity($orderId, $context); + /** - * @var OrderDeliveryEntity $orderDelivery - */ - $orderDelivery = $order->getDeliveries()->last(); - if ($orderDelivery->getStateMachineState()?->getTechnicalName() !== OrderDeliveryStateHandler::STATE_HOLD){ + * @var OrderDeliveryEntity $orderDelivery + */ + $orderDelivery = $order->getDeliveries()?->last(); + if (null === $orderDelivery) { return; } + + if ($orderDelivery->getStateMachineState()?->getTechnicalName() !== OrderDeliveryStateHandler::STATE_HOLD) { + return; + } + $orderDeliveryStateHandler = $this->container->get(OrderDeliveryStateHandler::class); $orderDeliveryStateHandler->unhold($orderDelivery->getId(), $context); } catch (\Exception $exception) { @@ -684,7 +690,11 @@ private function unholdAndCancelDelivery(string $orderId, Context $context): voi /** * @var OrderDeliveryEntity $orderDelivery */ - $orderDelivery = $order->getDeliveries()->last(); + $orderDelivery = $order->getDeliveries()?->last(); + if (null === $orderDelivery) { + return; + } + if ($orderDelivery->getStateMachineState()?->getTechnicalName() !== OrderDeliveryStateHandler::STATE_HOLD){ return; } diff --git a/src/Core/Api/WebHooks/Strategy/WebHookStrategyBase.php b/src/Core/Api/WebHooks/Strategy/WebHookStrategyBase.php index c8c94cd..009283e 100644 --- a/src/Core/Api/WebHooks/Strategy/WebHookStrategyBase.php +++ b/src/Core/Api/WebHooks/Strategy/WebHookStrategyBase.php @@ -319,7 +319,10 @@ protected function unholdDelivery(string $orderId, Context $context): void try { $order = $this->getOrderEntity($orderId, $context); /** @var OrderDeliveryEntity $orderDelivery */ - $orderDelivery = $order->getDeliveries()->last(); + $orderDelivery = $order->getDeliveries()?->last(); + if (null === $orderDelivery) { + return; + } if ($orderDelivery->getStateMachineState()?->getTechnicalName() !== OrderDeliveryStateHandler::STATE_HOLD){ return; }