Eigenes Git-Plugin (plentyShop LTS): ServiceProvider wird nicht ausgeführt – register()/boot() laufen nie

Hallo zusammen,

ich komme bei einem eigenen Plugin nicht weiter und hoffe, jemand hatte das schon mal.

Problem: Mein ServiceProvider wird offenbar nie aufgerufen. register() und boot() schreiben jeweils als allererste Zeile einen getLogger()->info()-Eintrag – im Log (Level Debug) erscheint nichts unter dem Plugin-Namen. Der Event-Listener (BeforeBasketItemAdd) greift entsprechend nicht.

Umgebung: plentyShop LTS 5.0.80, Git-Plugin (öffentliches Repo), Plugin-Set ist dem Mandanten zugeordnet, Plugin installiert + aktiv, Build/Deploy erfolgreich, Entwicklungsmodus aus.

Schon ausgeschlossen:

  • plugin.json: namespace + vollständiger serviceProvider korrekt, kein phpNamespace

  • Pfad src/Providers/...ServiceProvider.php + Namespace stimmen überein

  • type = template (auch integration getestet) → kein Unterschied

  • keine composer.json (laut Support nicht nötig)

  • DI-Kette aufgelöst, alles per pluginApp() – kein Effekt

  • Log-Level Debug gesetzt

Das Repo ist öffentlich einsehbar: https://github.com/bermaro/MirkaBeltCalculator

Meine Frage: Wird ein Plugin mit type: "template", das keine Twig-/Template-Ressourcen liefert (reines Event-Listener-Plugin), im plentyShop-LTS-Frontend überhaupt gebootet? Oder fehlt mir ein Eintrag/eine Datei, damit der ServiceProvider im Shop-Request läuft?

Über jeden Hinweis dankbar!

Hey, ich tippe darauf, dass dein Provider längst bootet und du nur die Logs nicht siehst. Laut Plenty Doku zeigt Plenty info und debug nur an, wenn der Log Code eine Übersetzung hat und aktiviert ist. error und critical kommen dagegen immer durch. Du gibst an info() einen ganzen Satz als Code, der hat keine Übersetzung, also wird er verworfen.

Test: ersetz in register() und boot() das info() durch error(), zum Beispiel

$this->getLogger(METHOD)->error(‚boot da‘);

Wenn die Meldung auftaucht, bootet dein Provider und es war nur das Log. Wenn nicht, bootet er wirklich nicht und du musst weiter suchen.

Zur Einordnung: dass error immer angezeigt wird, steht so in der Doku. Ob dein Provider gerade bootet, weiß ich natürlich nicht, das zeigt erst der Test.

An type „template“ liegt es nicht.

Viele Grüße