klarnaOrderRepository = $klarnaOrderRepository; $this->mageQuoteRepository = $mageQuoteRepository; $this->mageOrderRepository = $mageOrderRepository; $this->helper = $helper; $this->omFactory = $omFactory; $this->messageManager = $messageManager; } /** * AbstractCommand command * * @param array $commandSubject * * @return null|Command\ResultInterface * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ abstract public function execute(array $commandSubject); /** * Get a Klarna order * * @param $order * * @return \Klarna\Core\Model\Order * @throws \Magento\Framework\Exception\NoSuchEntityException */ public function getKlarnaOrder($order) { return $this->klarnaOrderRepository->getByOrder($order); } /** * Get api class * * @param OrderInterface $order * @return Ordermanagement * @internal param Store $store */ public function getOmApi(OrderInterface $order) { $store = $order->getStore(); if (isset($this->omCache[$store->getId()])) { $this->om = $this->omCache[$store->getId()]; return $this->om; } $omClass = $this->helper->getOrderMangagementClass($store); $this->om = $this->omFactory->create($omClass); $this->om->resetForStore($store, $order->getPayment()->getMethod()); $this->omCache[$store->getId()] = $this->om; return $this->om; } /** * Extending the error message with information from the api response * * @param DataObject $response * @param string $errorMessage * @param string $type * @return \Magento\Framework\Phrase */ public function getFullErrorMessage($response, $errorMessage, $type) { $apiMessage = implode($response->getErrorMessages(), ','); if (!empty($apiMessage)) { $errorMessage = __( '%1 Klarna %2 api error messages: %3', $errorMessage, $type, $apiMessage ); } return $errorMessage; } }