private function processOrder(Ess_M2ePro_Model_Order $order, Mage_Sales_Model_Order_Shipment $shipment, array $trackingDetails = array()) { if ($order->isSingle() || !$order->isComponentModeEbay() || count($shipment->getAllItems()) != 1) { return $order->getChildObject()->updateShippingStatus($trackingDetails); } // combined eBay orders only $shipmentItems = $shipment->getAllItems(); $shipmentItem = reset($shipmentItems); /** @var $shipmentItem Mage_Sales_Model_Order_Shipment_Item */ $additionalData = $shipmentItem->getOrderItem()->getAdditionalData(); $additionalData = is_string($additionalData) ? @unserialize($additionalData) : array(); if (empty($additionalData['ebay_item_id']) || empty($additionalData['ebay_transaction_id'])) { return $order->getChildObject()->updateShippingStatus($trackingDetails); } $itemToShip = null; foreach ($order->getItemsCollection()->getItems() as $item) { /** @var $item Ess_M2ePro_Model_Order_Item */ if ($item->getChildObject()->getItemId() == $additionalData['ebay_item_id'] || $item->getChildObject()->getTransactionId() == $additionalData['ebay_transaction_id']) { $itemToShip = $item; break; } } if (is_null($itemToShip)) { return $order->getChildObject()->updateShippingStatus($trackingDetails); } $params = array(); if (count($trackingDetails) > 0) { $params['tracking_number'] = $trackingDetails['tracking_number']; $params['carrier_code'] = Mage::helper('M2ePro/Component_Ebay')->getCarrierTitle($trackingDetails['carrier_code'], $trackingDetails['carrier_title']); } /** @var $dispatcher Ess_M2ePro_Model_Connector_Server_Ebay_OrderItem_Dispatcher */ $dispatcher = Mage::getModel('M2ePro/Connector_Server_Ebay_OrderItem_Dispatcher'); $action = Ess_M2ePro_Model_Connector_Server_Ebay_OrderItem_Dispatcher::ACTION_UPDATE_STATUS; return $dispatcher->process($action, $itemToShip, $params); }
public function handle(Ess_M2ePro_Model_Order $order, Mage_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, Mage_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; } // collect change params //------------------------------ $item = $this->getItemToShip($order, $shipment); $params = array('tracking_details' => $trackingDetails, 'item_id' => null); if (!is_null($item)) { $params['item_id'] = $item->getId(); } //------------------------------ $this->createChange($order, $params); if (!is_null($item)) { $succeeded = $item->getChildObject()->updateShippingStatus($trackingDetails); } else { $succeeded = $order->getChildObject()->updateShippingStatus($trackingDetails); } return $succeeded ? self::HANDLE_RESULT_SUCCEEDED : self::HANDLE_RESULT_FAILED; }
public function handle(Ess_M2ePro_Model_Order $order, Mage_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 handle(Ess_M2ePro_Model_Order $order, Mage_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; }
public function handle(Ess_M2ePro_Model_Order $order, Mage_Sales_Model_Order_Shipment $shipment) { if (!$order->isComponentModePlay()) { 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); if (count($items) == 0) { return self::HANDLE_RESULT_FAILED; } foreach ($items as $item) { $item->getChildObject()->updateShippingStatus($trackingDetails, Ess_M2ePro_Model_Order_Change::CREATOR_TYPE_OBSERVER); } return self::HANDLE_RESULT_SUCCEEDED; }
private function createMagentoOrder(Ess_M2ePro_Model_Order $order) { if ($order->canCreateMagentoOrder()) { try { $order->createMagentoOrder(); } catch (Exception $e) { Mage::helper('M2ePro/Exception')->process($e, true); } } 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(); }
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(); }
/** * @return Ess_M2ePro_Model_Amazon_Order */ public function getAmazonOrder() { return $this->order->getChildObject(); }