Taxrate über eine App (Plugin) ändern

Hallo zusammen,
wie kann man in SW6 den verwendeten Steuersatz verändern? Ich habe versucht mit einem Eventlistener auf tax.loaded zu lauschen, habe aber in dem Event Objekt keine Möglichkeit an die Taxrate zu kommen oder diese zu verändern.
Dann habe ich noch ausprobiert über einen dekorierten Service die Funktion „calculateGrossTaxes“ im „TaxCalculator“ Service zu verändern, was auch den Anschein macht, dass ich dort an der richtigen Stelle bin, weil der dort gesetzte Wert verwendet wird in der Storefront.

Allerdings habe ich dort keine Möglichkeit gefunden wie man vom aktuellen Tax Objekt den Standard Taxwert zu bekommen kann.

Bin ich evtl. komplett an der falschen Stelle und kann mir jmd. aufzeigen wo ich ansetzen muss?

Mein Ziel ist es, eine andere temporäre Taxrate zu verwenden, mit der dann alle Preise und Versandkosten „on the fly“ angepasst sind.

Ich bin über jeden Hinweis dankbar!

Grüße
Danny

Hmm,
ich habe jetzt etwas gebaut was wohl so auf den ersten Blick funktioniert, ich bin aber nicht sicher ob es so korrekt ist, da ich die TaxId anhand von „$rule->getTaxRate()“ aus der DB ziehe?!? Besser wäre es ja, wenn ich die „rule_id“ zum selektieren aus der DB nutzen könnte. Nur die habe ich an dieser Stelle leider nicht. :frowning:

$criteria = new Criteria();
$criteria->addFilter(new EqualsFilter('taxRate', $rule->getTaxRate()));
$taxRule = $this->taxRulesRepository->search($criteria, Context::createDefaultContext());

$taxId = $taxRule->first()->getTaxId();

if($taxId != '') {
   $criteria = new Criteria();
   $criteria->addFilter(new EqualsFilter('id', $taxId));

   /** @var EntityRepositoryInterface $taxRepository */
   $tax = $this->taxRepository->search($criteria, Context::createDefaultContext());

   $gross = $gross / 100 * $rule->getPercentage();

   $calculatedTax = $gross / ((100 + $tax->first()->getTaxRate()) / 100) * ($tax->first()->getTaxRate() / 100);
   
  return new CalculatedTax($calculatedTax, $tax->first()->getTaxRate(), $gross);
}

Danny