public function execute(Observer $observer) { if (!$this->_api->enabled()) { return; } try { /** @var $order Order */ $order = $observer->getEvent()->getOrder(); // Check if a payment is available for this order yet if ($order->getState() == \Magento\Sales\Model\Order::STATE_PENDING_PAYMENT) { return; } // Check if case already exists for this order if ($this->_helper->doesCaseExist($order)) { return; } $orderData = $this->_helper->processOrderData($order); // Add order to database $case = $this->_helper->createNewCase($order); // Post case to signifyd service $result = $this->_helper->postCaseToSignifyd($orderData, $order); if ($order->canHold()) { $order->hold()->getResource()->save($order); } if ($result) { $case->setCode($result); $case->setMagentoStatus(CaseRetry::IN_REVIEW_STATUS)->setUpdated(strftime('%Y-%m-%d %H:%M:%S', time())); $case->getResource()->save($case); } } catch (\Exception $ex) { $this->_logger->error($ex->getMessage()); } }
public function sendOrderToSignifyd(Observer $observer) { /** @var $order Order */ $order = $observer->getEvent()->getOrder(); $this->_logger->info("Order received"); $orderData = $this->_helper->processOrderData($order); // Inspect data $items = $order->getAllItems(); foreach ($items as $item) { $this->_logger->info($item->convertToJson()); } $this->_logger->info(json_encode($orderData)); $this->_logger->info($order->convertToJson()); // Add order to database $this->_helper->createNewCase($order); // Post case to signifyd service $this->_helper->postCaseToSignifyd($orderData); }
public function massAction(AbstractCollection $collection) { foreach ($collection->getItems() as $order) { try { // Check if case already exists for this order if ($this->_helper->doesCaseExist($order)) { continue; } $orderData = $this->_helper->processOrderData($order); // Add order to database $this->_helper->createNewCase($order); // Post case to signifyd service $this->_helper->postCaseToSignifyd($orderData, $order); } catch (\Exception $ex) { $this->_logger->error($ex->getMessage()); } } $this->messageManager->addSuccessMessage(__('Success.')); $resultRedirect = $this->resultRedirectFactory->create(); $resultRedirect->setPath($this->getComponentRefererUrl()); return $resultRedirect; }