Anzahl der im Warenkorb liegenden Produkte auch im Produktlisting anzeigen

Hallo Leute,

ich bräuchte Hilfe bei der Implementierung von folgendem:
Im Produktlisting, also eine NavigationPage, werden alle Produkte angezeigt, die wir verkaufen. Wenn ein Produkt im Warenkorb ist, soll oben auf der Produktkarte die Anzahl angezeigt, die im Warenkorb vorhanden ist.

Dazu habe ich folgendes ausprobiert:

  • Es so wie beim Header->Cart über ein JS Plugin zu machen. Da wird allerdings dann für jedes Produkt auf der Seite ein Request gemacht um die Daten zu bekommen und die twig-Datei neu zu rendern. Das führt nebenbei auch dazu, dass beim Füllen in den Warenkorb für jedes Produkt auf der Seite, ein weiterer Artikel des selben Produkts in den Warenkorb gelegt wird.
  • Cart über das NavigationPageLoadedEvent in die Extension der Seite platziert.
    → Das funktioniert, allerdings wird nur aktualisiert wenn die Seite neu geladen wird. Die Seite wird leider nicht neugeladen wenn der OffCanvas Cart geschlossen wird.

Das führt mich zur aktuellen Problematik. Ich würde vermutlich eher pragmatisch die zweite Option bevorzugen, also würde ich bei der JS Methode, die das wieder schließt noch ein Location.reload oder so machen. Ich habe dazu die OffCanvas und deren Unterklassen gefunden (vendor\shopware\storefront\Resources\app\storefront\src\plugin\offcanvas). Ich sehe aber nicht, wie, wann und wo diese close Methode vom Button "Weiter Einkaufen "aufgerufen wird.


Im Plugin OffCanvasCart wird sie auch nicht aufgerufen.

Hat jemand einen Tipp oder eine andere vernünftige Lösung?

Auf den „Weiter einkaufen“ Button ist ein EventListener hinzugefügt worden. Sobald man auf den Button klickt, wird der OffCanvas geschlossen.

siehe:

Wenn du nach dem Schließen des OffCanvas ein Reload durchführen willst, dann empfehle ich auf das Event onCloseOffcanvas zu lauschen und anschließend ein Reload durchzuführen.

Jetzt wo du es sagt, habe ich die JavaScript Events entdeckt in der Doku. Die habe ich scheinbar übersehen. Jetzt steht dort aber, dass und wie man das mit Plugins macht. OffCanvas extends aber nicht Plugin und wird somit nicht in der main.js im PluginManager registriert. Wie komme ich denn sonst an den OffCanvasSingleton Emitter?