Hallo,
ich gebe meinen Kunden über eine CustomEntity ihren Kundenumsatz als Tabelle aus. Wenn ich dem EqualsFilter statisch einen Wert gebe, funktioniert auch alles einwandfrei, ich möchte nun natürlich immer den eingeloggten Kunden übergeben.
Ich hänge grad an dem Problem das ich dem Filter immer den jeweils eingeloggten Kunden übergeben will. Ich bekomme aber leider nicht die customer_number heraus. Ich wollte via den SalesChannelContext mir die CustomerEntity ziehen und dann weiter mit getCustomerNumber().
public function addTurnover(FooterPageletLoadedEvent $event, SalesChannelContext $salesChannelContext): void
{
$currentCustomer = $salesChannelContext->getCustomer();
$customerNumber = $currentCustomer->getCustomerNumber();
$criteria = new Criteria();
$criteria->addFilter(new EqualsFilter('customerId', $customerNumber));
$turnover = $this->entityTurnover
->search($criteria, $event->getContext());
$event->getPagelet()->addExtension('entity_turnover', $turnover);
}
Fehlermeldung: Argument 2 passed to CustomPlugin\Storefront\Subscriber\TurnoverSubscriber::addTurnover() must be an instance of Shopware\Core\System\SalesChannel\SalesChannelContext, string given
Bin ich hier komplett auf dem Holzweg? Gibt es da eine charmantere Lösung um die customer_number des aktuell eingeloggten Kunde an den EqualsFilter zu übergeben?