shippingMethodFactory = $shippingMethodFactory; $this->carrierFinder = $carrierFinder; } /** * @inheritdoc */ public function choose(Address $address) { $shippingMethod = $this->shippingMethodFactory->create() ->setCarrierCode(DeferredShippingMethodChooserInterface::CARRIER) ->setMethodCode(CheapestMethodDeferredChooser::METHOD_CODE) ->setMethodTitle(__('Cheapest price')) ->setAvailable($this->areShippingMethodsAvailable($address)); return $shippingMethod; } /** * Checks if any shipping method available. * * @param Address $address * @return bool */ private function areShippingMethodsAvailable(Address $address): bool { $carriersForAddress = $this->carrierFinder->getCarriersForCustomerAddress($address); return !empty($carriersForAddress); } }