コード例 #1
0
ファイル: Shipment.php プロジェクト: xiaoguizhidao/beut
 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);
 }
コード例 #2
0
 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;
 }
コード例 #3
0
ファイル: Handler.php プロジェクト: technomagegithub/magento
 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;
 }
コード例 #4
0
ファイル: Handler.php プロジェクト: newedge-media/iwantmymeds
 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;
 }
コード例 #5
0
ファイル: Handler.php プロジェクト: newedge-media/iwantmymeds
 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;
 }
コード例 #6
0
ファイル: Handler.php プロジェクト: ppkowalski/M2E
 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;
 }
コード例 #7
0
ファイル: Cancellation.php プロジェクト: xiaoguizhidao/beut
 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();
 }
コード例 #8
0
 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();
 }
コード例 #9
0
 /**
  * @return Ess_M2ePro_Model_Amazon_Order
  */
 public function getAmazonOrder()
 {
     return $this->order->getChildObject();
 }