taxRuleRepository = $taxRuleRepository; $this->taxRateRepository = $taxRateRepository; $this->filterBuilder = $filterBuilder; $this->searchCriteriaBuilder = $searchCriteriaBuilder; } /** * {@inheritdoc} */ public function getRatesByCustomerAndProductTaxClassId($customerTaxClassId, $productTaxClassId) { $this->searchCriteriaBuilder->addFilters( [ $this->filterBuilder ->setField('customer_tax_class_ids') ->setValue([$customerTaxClassId]) ->create(), ] ); $this->searchCriteriaBuilder->addFilters( [ $this->filterBuilder ->setField('product_tax_class_ids') ->setValue([$productTaxClassId]) ->create(), ] ); $searchResults = $this->taxRuleRepository->getList($this->searchCriteriaBuilder->create()); $taxRules = $searchResults->getItems(); $rates = []; foreach ($taxRules as $taxRule) { $rateIds = $taxRule->getTaxRateIds(); if (!empty($rateIds)) { foreach ($rateIds as $rateId) { $rates[] = $this->taxRateRepository->get($rateId); } } } return $rates; } }