/** * @param Mage_Sales_Model_Order_Shipment_Track $magento_track * @return mixed */ private function _saveTrack(Mage_Sales_Model_Order_Shipment_Track $magento_track) { $magento_track_data = $magento_track->getData(); $magento_order_data = $magento_track->getShipment()->getOrder()->getData(); $magento_shipping_address_data = $magento_track->getShipment()->getOrder()->getShippingAddress()->getData(); $track = Mage::getModel('track/track'); $track->setTrackingNumber($this->_getTrackNo($magento_track)); $track->setShipCompCode($magento_track_data['carrier_code']); $track->setTitle($magento_order_data['increment_id']); $track->setOrderId($magento_order_data['increment_id']); if ($magento_order_data['customer_email'] && $magento_order_data['customer_email'] != '') { $track->setEmail($magento_order_data['customer_email']); } if ($magento_shipping_address_data['telephone'] && $magento_shipping_address_data['telephone'] != '') { $track->setTelephone($magento_shipping_address_data['telephone']); } $config = $this->_getWebsiteConfig($magento_track->getShipment()->getOrder()); if ($config->status) { $track->setPosted(self::POSTED_NOT_YET); } else { // mark it as disabled so that cron will not touch it $track->setPosted(self::POSTED_DISABLED); } $track->save(); return $track; }