orderRepository = $orderRepository; $this->isWebsiteInMultiSourceMode = $isWebsiteInMultiSourceMode; $this->redirect = $redirect; } /** * @param EventObserver $observer * @return void */ public function execute(EventObserver $observer) { $request = $observer->getEvent()->getRequest(); $controller = $observer->getEvent()->getControllerAction(); if (!empty($request->getParam('items')) && !empty($request->getParam('sourceCode'))) { return; } try { $orderId = $request->getParam('order_id'); $order = $this->orderRepository->get($orderId); $websiteId = (int)$order->getStore()->getWebsiteId(); if ($this->isWebsiteInMultiSourceMode->execute($websiteId)) { $this->redirect->redirect( $controller->getResponse(), 'inventoryshipping/SourceSelection/index', [ 'order_id' => $orderId ] ); } } catch (InputException | NoSuchEntityException $e) { $this->redirect->redirect( $controller->getResponse(), 'sales/order/index' ); } return; } }