getCustomerNumber() in Subcriber

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?

Deine Methode wird falsch gecallt. 

1 „Gefällt mir“

@Shyim schrieb:

Deine Methode wird falsch gecallt. 

Ich schnalls net… :smiley: Ich bekomme den SalesChannelContext einfach nicht.

Dann zeig doch mal den Aufruf deiner Methode.

Viele Grüße

@EikeBrandtWarneke schrieb:

Dann zeig doch mal den Aufruf deiner Methode.

Viele Grüße

$currentCustomer = $salesChannelContext->getCustomer();

  Ist absolut überflüßig da ich im $event die CustomerNumber habe, sorry für die unnötige Frage. Hat sich geklärt (Y)