$carrierConfig) { if (Mage::getStoreConfigFlag('carriers/'.$code.'/active', $store)) { $carrierModel = $this->_getCarrier($code, $carrierConfig, $store); if ($carrierModel) { $carriers[$code] = $carrierModel; } } } return $carriers; } /** * Retrieve all system carriers * * @param mixed $store * @return array */ public function getAllCarriers($store = null) { $carriers = array(); $config = Mage::getStoreConfig('carriers', $store); foreach ($config as $code => $carrierConfig) { $model = $this->_getCarrier($code, $carrierConfig, $store); if ($model) { $carriers[$code] = $model; } } return $carriers; } /** * Retrieve carrier model instance by carrier code * * @param string $carrierCode * @param mixed $store * @return Mage_Usa_Model_Shipping_Carrier_Abstract */ public function getCarrierInstance($carrierCode, $store = null) { $carrierConfig = Mage::getStoreConfig('carriers/'.$carrierCode, $store); if (!empty($carrierConfig)) { return $this->_getCarrier($carrierCode, $carrierConfig, $store); } return false; } /** * Get carrier model object * * @param string $code * @param array $config * @param mixed $store * @return Mage_Shipping_Model_Carrier_Abstract */ protected function _getCarrier($code, $config, $store = null) { if (!isset($config['model'])) { return false; } $modelName = $config['model']; /** * Added protection from not existing models usage. * Related with module uninstall process */ try { $carrier = Mage::getModel($modelName); } catch (Exception $e) { Mage::logException($e); return false; } $carrier->setId($code)->setStore($store); self::$_carriers[$code] = $carrier; return self::$_carriers[$code]; } }