Shopware-Entwicklung für Einsteiger

Shopware enthält einige Hürden, die Neueinsteiger schnell ratlos stehen lassen. Zwei dieser Stolpersteine sollen im Folgenden etwas ausführlicher vorgestellt werden, um vielleicht dem ein oder anderen Anfänger, sei es in einer Shopware Agentur oder auf Seiten eines Auftraggebers, den Anfang in der Shopware Entwicklung zu erleichtern.

Problem 1: Plugins und das „Warum passiert eigentlich nichts?“

Sobald man sich um die Entwicklung von Plugins kümmert, kommt man um die Registrierung eigener Subscriber und Services nicht herum. Ohne eine Registrierung sind diese dem System nicht bekannt und werden dementsprechend bei der Ausführung ignoriert.

Bei Shopware 5 Plugins wird dieser Schritt glücklicherweise enorm vereinfacht und lässt sich mit wenigen Handgriffen erledigen.

Zuerst einmal wird die Datei „PluginName/Resources/services.xml“ mit folgendem Grundgerüst benötigt:

shopware-entwicklung-fuer-einsteiger-1

Für die Registrierung benötigt man eine eindeutige ID sowie den Pfad zur Serviceklasse (class).

Die ID kann sich beispielsweise aus Plugin-Name, Typ des Services und einer kurzen Beschreibung zusammensetzen.

Konkret bedeutet das: id=“dummy.subscriber.frontend“ würde einen Subscriber des Plugins „dummy“ beschreiben, der auf Events des Frontends reagiert.

Einem Service kann man auch Parameter übergeben, indem man diese als Argument im service tag definiert. Hier kann nun beispielsweise der Plugin-Ordner übergeben werden:

shopware-entwicklung-fuer-einsteiger-2.png

In erster Linie unterscheiden sich die Definitionen der Services kaum. Der einzige relevante Unterschied ist, dass ein Subscriber zusätzlich zu optionalen Argumenten einen zusätzlichen tag benötigt:

shopware-entwicklung-fuer-einsteiger-3.png

Dies ist dann relevant, wenn der Subscriber auf Events reagieren soll. Es schadet allerdings auch nicht die Zeile hinzuzufügen, auch wenn man aktuell keine Events subscribed, einfach aus dem Grund, dass man dann nicht auf Fehlersuche gehen muss, wenn man nachträglich Events subscribed und bei der Ausführung nichts passiert.

 

Problem 2: Die Entwicklungsumgebung und das „warum funktioniert mein Shop eigentlich nicht?“

Ausführliche Fehlermeldungen sind für jeden Entwickler eine sehr angenehme Sache. Da es natürlich nicht im Sinne des Shop-Betreibers ist, seine Kunden mit exorbitant langen Fehlermeldungen zu schockieren und möglicherweise zu verschrecken, sind sie standardmäßig deaktiviert.

Da es bei der Entwicklung allerdings nicht hilfreich ist, bei einem Fehler die Aussage „Die Seite konnte nicht angezeigt werden“ zu erhalten, gibt es ein paar Einstellungen, die einem das Entwicklerleben sehr vereinfachen.

Für die notwendigen Einstellungen erstellt man sich zuerst die Datei „config_dev.php“ im selben Ordner, in dem auch die „config.php“ liegt.

Danach entfernt man den Kommentar der folgenden Zeile in der htaccess.

shopware-entwicklung-fuer-einsteiger-4.png

Dies gewährleistet die Erkennung des _dev Zusatzes der config_dev.php.

In der config_dev .php kann man nun mit folgendem Inhalt Fehler anzeigen lassen.

shopware-entwicklung-fuer-einsteiger-5.png

Hiermit werden die Einstellungen der config.php in der config_dev.php eingebunden und durch zusätzliche Konfigurationen erweitert.

 

Fazit

Der Einstieg in die Entwicklung ist dank einer sehr umfangreichen Dokumentation und, in meinem Falle, Dank der Kollegen aus meiner Shopware Agentur in verhältnismäßig kurzer Zeit möglich. Trotzdem gibt es einige Fallstricke, die nur durch Erfahrung und ein gewisses Repertoire in der Shopware-Entwickler-Erfahrungsschatzkiste zu vermeiden sind. Die zwei heute beschriebenen Herausforderungen werden hoffentlich für machen Leser das Leben einfacher machen. :)