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; }