orderFactory = $orderFactory; $this->resourceModel = $resourceModel; } /** * {@inheritdoc} */ public function save(OrderInterface $order) { try { $this->resourceModel->save($order); } catch (\Exception $e) { throw new CouldNotSaveException(__($e->getMessage())); } return $order; } /** * {@inheritdoc} */ public function getByKlarnaOrderId($klarnaOrderId) { $order = $this->orderFactory->create(); $orderId = $this->resourceModel->getIdByKlarnaOrderId($klarnaOrderId); if (!$orderId) { $order->setKlarnaOrderId($klarnaOrderId); return $order; } $this->resourceModel->load($order, $orderId); return $order; } /** * {@inheritdoc} */ public function getByOrder(MageOrder $mageOrder) { $order = $this->orderFactory->create(); $orderId = $this->resourceModel->getIdByOrder($mageOrder); if (!$orderId) { throw new NoSuchEntityException(__('Requested order doesn\'t exist')); } $this->resourceModel->load($order, $orderId); return $order; } /** * {@inheritdoc} */ public function getById($id) { $order = $this->orderFactory->create(); $this->resourceModel->load($order, $id); if (!$order->getId()) { throw new NoSuchEntityException(__('Order with id "%1" does not exist.', $id)); } return $order; } /** * {@inheritdoc} */ public function getByReservationId($reservationId) { $order = $this->orderFactory->create(); $orderId = $this->resourceModel->getIdByReservationId($reservationId); if (!$orderId) { throw new NoSuchEntityException(__('Order with Reservation ID "%1" does not exist.', $reservationId)); } $this->resourceModel->load($order, $orderId); return $order; } /** * {@inheritdoc} */ public function getBySessionId($sessionId) { $order = $this->orderFactory->create(); $orderId = $this->resourceModel->getIdBySessionId($sessionId); if (!$orderId) { throw new NoSuchEntityException(__('Order with session_id "%1" does not exist.', $sessionId)); } $this->resourceModel->load($order, $orderId); return $order; } }