carriersConfig = $carriersConfig; $this->storeManager = $storeManager; } /** * Finds carriers delivering to customer address * * @param Address $address * @return array */ public function getCarriersForCustomerAddress(Address $address): array { $request = new DataObject([ 'dest_country_id' => $address->getCountryId() ]); $carriers = []; foreach ($this->carriersConfig->getActiveCarriers($this->storeManager->getStore()->getId()) as $carrier) { $checked = $carrier->checkAvailableShipCountries($request); if (false !== $checked && null === $checked->getErrorMessage() && !empty($checked->getAllowedMethods())) { $carriers[] = $checked; } } return $carriers; } }