_scopeConfig = $scopeConfig; $this->_carrierFactory = $carrierFactory; parent::__construct($data); } /** * Retrieve active system carriers * * @param mixed $store * @return AbstractCarrierInterface[] */ public function getActiveCarriers($store = null) { $carriers = []; $config = $this->_scopeConfig->getValue('carriers', \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store); foreach (array_keys($config) as $carrierCode) { if ($this->_scopeConfig->isSetFlag( 'carriers/' . $carrierCode . '/active', \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store )) { $carrierModel = $this->_carrierFactory->create($carrierCode, $store); if ($carrierModel) { $carriers[$carrierCode] = $carrierModel; } } } return $carriers; } /** * Retrieve all system carriers * * @param mixed $store * @return AbstractCarrierInterface[] */ public function getAllCarriers($store = null) { $carriers = []; $config = $this->_scopeConfig->getValue('carriers', \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store); foreach (array_keys($config) as $carrierCode) { $model = $this->_carrierFactory->create($carrierCode, $store); if ($model) { $carriers[$carrierCode] = $model; } } return $carriers; } }