public function handle(\Ess\M2ePro\Model\Order $order, \Magento\Sales\Model\Order\Shipment $shipment) { if (!$order->isComponentModeEbay()) { throw new \InvalidArgumentException('Invalid component mode.'); } $trackingDetails = $this->getTrackingDetails($shipment); if (!$order->getChildObject()->canUpdateShippingStatus($trackingDetails)) { return self::HANDLE_RESULT_SKIPPED; } if (empty($trackingDetails)) { return $this->processOrder($order) ? self::HANDLE_RESULT_SUCCEEDED : self::HANDLE_RESULT_FAILED; } $itemsToShip = $this->getItemsToShip($order, $shipment); if (empty($itemsToShip) || count($itemsToShip) == $order->getItemsCollection()->getSize()) { return $this->processOrder($order, $trackingDetails) ? self::HANDLE_RESULT_SUCCEEDED : self::HANDLE_RESULT_FAILED; } $succeeded = true; foreach ($itemsToShip as $item) { if ($this->processOrderItem($item, $trackingDetails)) { continue; } $succeeded = false; } return $succeeded ? self::HANDLE_RESULT_SUCCEEDED : self::HANDLE_RESULT_FAILED; }
private function addSessionErrorMessage(\Ess\M2ePro\Model\Order $order) { if ($order->isComponentModeEbay()) { $url = $this->urlBuilder->getUrl('*/ebay_order_log/index', array('order_id' => $order->getId())); } else { $url = $this->urlBuilder->getUrl('*/amazon_order_log/index', array('order_id' => $order->getId())); } $chanelTitle = $order->getComponentTitle(); // M2ePro\TRANSLATIONS // Shipping Status for %chanel_title% Order was not updated. View <a href="%url%" target="_blank" >Order Log</a> for more details. $message = $this->getHelper('Module\\Translation')->__('Shipping Status for %chanel_title% Order was not updated.' . ' View <a href="%url% target="_blank" >Order Log</a>' . ' for more details.', $chanelTitle, $url); $this->messageManager->addError($message); }