public function handle(\Ess\M2ePro\Model\Order $order, \Magento\Sales\Model\Order\Shipment $shipment) { $trackingDetails = $this->getTrackingDetails($shipment); if (!$order->getChildObject()->canUpdateShippingStatus($trackingDetails)) { return self::HANDLE_RESULT_SKIPPED; } return $order->getChildObject()->updateShippingStatus($trackingDetails) ? self::HANDLE_RESULT_SUCCEEDED : self::HANDLE_RESULT_FAILED; }
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; }
public function hasCurrencyConversionRate() { $store = $this->getStore(); if (is_null($store)) { return true; } return $this->modelFactory->getObject('Currency')->getConvertRateFromBase($this->order->getChildObject()->getCurrency(), $store) != 0; }
/** * @param \Ess\M2ePro\Model\Order $order * @param \Magento\Sales\Model\Order\Shipment $shipment * @return int */ public function handle(\Ess\M2ePro\Model\Order $order, \Magento\Sales\Model\Order\Shipment $shipment) { if (!$order->isComponentModeAmazon()) { throw new \InvalidArgumentException('Invalid component mode.'); } $trackingDetails = $this->getTrackingDetails($shipment); if (!$order->getChildObject()->canUpdateShippingStatus($trackingDetails)) { return self::HANDLE_RESULT_SKIPPED; } $items = $this->getItemsToShip($order, $shipment); $trackingDetails['fulfillment_date'] = $shipment->getCreatedAt(); $order->getChildObject()->updateShippingStatus($trackingDetails, $items); return self::HANDLE_RESULT_SUCCEEDED; }
private function createMagentoOrder(\Ess\M2ePro\Model\Order $order) { if ($order->canCreateMagentoOrder()) { try { $order->createMagentoOrder(); } catch (\Exception $exception) { return; } } if ($order->getChildObject()->canCreatePaymentTransaction()) { $order->getChildObject()->createPaymentTransactions(); } if ($order->getChildObject()->canCreateInvoice()) { $order->createInvoice(); } if ($order->getChildObject()->canCreateShipment()) { $order->createShipment(); } if ($order->getChildObject()->canCreateTracks()) { $order->getChildObject()->createTracks(); } $order->updateMagentoOrderStatus(); }