Warum wird ein Event auf sBasket::sGetBasket::after dutzende Male aufgerufen, nacheinander?

Hallo Ihr… Ich muss mit dem Warenkorb, bevor er angezeigt wird, einiges anstellen, und nehme dafür ‘sBasket::sGetBasket::after’ - kann mir jemand sagen warum die Funktion, zumindest laut dem Logfile (und auch von der Verarbeitungsgeschwindigkeit her) erst 6-10 mal aufgerufen wird bevor es fertig ist?

Für mich gibts hier keinen ersichtlichen Grund, und als ich im Gitter/IRC nachgefragt hatte, meinte nur jemand, das sie das auch gemerkt haben, aber sich damit abgefunden haben.

Bei dem Plugin das auf dieses Event zugreifen muss, ist eine mehrfache Ausführung des ganzen aber performancetechnisch tödlich.

Kann mir jemand die Ursache dafür nennen?

Falls jemand den Grund nicht kennt und auch keine Lösung dafür weiß, vielleicht ja hierfür:

Wie kann ich aus meinem Plugin raus, bzw. aus meiner sBasket::sGetBasket::after die aufrufende Seite abfragen?

Wenn ich meine Funktionen nur dann laufen lasse, wenn es wirklich der richtige Checkout-Warenkorb ist, nicht aber der Ajax-Warenkorb, komm ich performancetechnisch schon mal ein Riesenschritt weiter!

Für andere die ewig danach suchen müssen:

Shopware()->Container()->get(‘router’)->getContext()->getGlobalParam(‘action’)

Shopware()->Container()->get(‘router’)->getContext()->getGlobalParam(‘controller’)

Mir ist das leider auch schon aufgerfallen und ich habe mich auch leider damit abgefunden. Der Code beim Checkout ist die Hölle, da war jemand mit ganz viel Sachverstand dran…

Geht ja schon damit los, dass erst ein Artikel in den Warenkorb gelegt wird nur um ihn dann direkt danach noch mal zu updaten… 

Hehe. Darüber bin ich auch gerade gestolpert. Ich frag mich auch wieso das so sein muss :wink:

Vielleicht gibts bei so vielen Leuten die sich da schon wundern, oder im Gitter etc. drüber schimpfen, irgendne Info von nem Entwickler bzw. wann das behoben wird.

Das kostet echt jede Menge Performance :confused:

Die Überarbeitung des Checkouts steht auf der Roadmap: https://de.shopware.com/roadmap/