© saicle/Shutterstock.com
PHP Magazin
Plug-ins mit Shopware

Plug-ins mit Shopware

Bei einem guten Shopsystem ist es ein wenig so wie bei einem Lego-Baukasten: Je mehr Erweiterungen es gibt und je einfacher diese zu programmieren sind, desto besser. Wohl deshalb (und natürlich, weil Lego auch bei Shopware kein Fremdwort ist) hat sich der westfälische Shopsystemhersteller eine einfache Erweiterbarkeit seines Systems mithilfe von verschiedensten Plug-ins auf die Fahnen geschrieben. Mittlerweile tummeln sich im Shopware Community Store, dem zentralen Marktplatz für alle Shopware-Erweiterungen, dutzende von Fremdanbietern, die alle ihren Teil zur Funktionsvielfalt der Software beitragen. Der folgende Artikel soll anhand eines Beispiels verdeutlichen, wie im Handumdrehen ein Plug-in entsteht.

Stephan Pohl


Shopware ist ein dual lizenziertes Shopsystem, das sowohl in einer unter AGPL v3 lizenzierten Open-Source-­Version, als auch in drei abgestuften kommerziellen Varianten zur Verfügung steht. Das System ist modular aufgebaut, bietet schon im Standard umfangreiche Marketingfunktionen und ist durch seine offene Architektur in allen Bereichen, von der Administration bis zur Storefront, an individuelle Bedürfnisse anpassbar.

Zum Verständnis: Die Erweiterbarkeit von Shopware basiert auf einem Event- und Hooksystem. Unter Events versteht man feste Einstiegspunkte im Quelltext von Shopware, die von Plug-ins genutzt werden können, um zum Beispiel weitere Inhalte der Storefront zur Verfügung zu stellen. Hooks hingegen bieten einem die Möglichkeit, den Shopware-Sourcecode direkt zu bearbeiten, ohne dabei die Updatefähigkeit des Systems zu beeinträchtigen.

Bootstrapping eines Plug-ins

Wir werden Ihnen nun anhand eines kleinen Beispiels zeigen, wie schnell und einfach die Entwicklung von Shopware-Plug-ins ist. Funktion des Beispiel-Plug-ins soll es sein, das Logo eines Shops mit einem Slogan auszutauschen. Die Slogans sollen dann im zweiten Teil über die Plug-in-Konfiguration einstellbar sein.

Um ein neues Plug-in zu erstellen, muss zunächst ein Plug-in-Verzeichnis angelegt werden, in dem die Plug-in-Komponenten definiert werden. Dieses Verzeichnis wird als Unterordner in engine/Shopware/Plug­ins/Local/Frontend erzeugt. Als Verzeichnisname wird der Name des Plug-ins gesetzt: SloganOfTheDay. Damit Shopware das Plug-in erkennt, wird zunächst eine Bootstrap-Datei benötigt. Diese Datei ist der Einstiegspunkt für jegliche Plug-in-Aktionen. Die Bootstrap-Datei muss in der ersten Ebene des Plug-in-Ordners liegen und als Dateinamen Bootstrap.php besitzen. Zunächst wird der Bootstrap-Rumpf definiert:

<?phpclass Shopware_Plugins_Frontend_SloganOfTheDay_Bootstrap extendsShopware_Components_Plugin_Bootstrap {}

Der Klassenname des Bootstrap setzt sich aus dem Shopware Namespace für Plug-ins (Shopware_Plug­ins), dem Plug-in-Bereich (Frontend, Backend oder Core), dem Plug-in-Namen (SloganOfTheDay) und dem Dateinamen (Bootstrap) zusammen. So wird das Plug-in korrekt erkannt und im Plug-in-Manager angezeigt (Abb. 1).

Abb. 1: Hier sehen Sie das Plug-in, wie es im Plug-in-Manager dargestellt wird

Damit das Plug-in installiert werden kann, muss nun die install-Funktion des Plug-ins implementiert werden:

public function install() { return true;}

Durch den Rückgabewert true wird mit­ge­­teilt, das...

PHP Magazin
Plug-ins mit Shopware

Plug-ins mit Shopware

Bei einem guten Shopsystem ist es ein wenig so wie bei einem Lego-Baukasten: Je mehr Erweiterungen es gibt und je einfacher diese zu programmieren sind, desto besser. Wohl deshalb (und natürlich, weil Lego auch bei Shopware kein Fremdwort ist) hat sich der westfälische Shopsystemhersteller eine einfache Erweiterbarkeit seines Systems mithilfe von verschiedensten Plug-ins auf die Fahnen geschrieben. Mittlerweile tummeln sich im Shopware Community Store, dem zentralen Marktplatz für alle Shopware-Erweiterungen, dutzende von Fremdanbietern, die alle ihren Teil zur Funktionsvielfalt der Software beitragen. Der folgende Artikel soll anhand eines Beispiels verdeutlichen, wie im Handumdrehen ein Plug-in entsteht.

Stephan Pohl


Shopware ist ein dual lizenziertes Shopsystem, das sowohl in einer unter AGPL v3 lizenzierten Open-Source-­Version, als auch in drei abgestuften kommerziellen Varianten zur Verfügung steht. Das System ist modular aufgebaut, bietet schon im Standard umfangreiche Marketingfunktionen und ist durch seine offene Architektur in allen Bereichen, von der Administration bis zur Storefront, an individuelle Bedürfnisse anpassbar.

Zum Verständnis: Die Erweiterbarkeit von Shopware basiert auf einem Event- und Hooksystem. Unter Events versteht man feste Einstiegspunkte im Quelltext von Shopware, die von Plug-ins genutzt werden können, um zum Beispiel weitere Inhalte der Storefront zur Verfügung zu stellen. Hooks hingegen bieten einem die Möglichkeit, den Shopware-Sourcecode direkt zu bearbeiten, ohne dabei die Updatefähigkeit des Systems zu beeinträchtigen.

Bootstrapping eines Plug-ins

Wir werden Ihnen nun anhand eines kleinen Beispiels zeigen, wie schnell und einfach die Entwicklung von Shopware-Plug-ins ist. Funktion des Beispiel-Plug-ins soll es sein, das Logo eines Shops mit einem Slogan auszutauschen. Die Slogans sollen dann im zweiten Teil über die Plug-in-Konfiguration einstellbar sein.

Um ein neues Plug-in zu erstellen, muss zunächst ein Plug-in-Verzeichnis angelegt werden, in dem die Plug-in-Komponenten definiert werden. Dieses Verzeichnis wird als Unterordner in engine/Shopware/Plug­ins/Local/Frontend erzeugt. Als Verzeichnisname wird der Name des Plug-ins gesetzt: SloganOfTheDay. Damit Shopware das Plug-in erkennt, wird zunächst eine Bootstrap-Datei benötigt. Diese Datei ist der Einstiegspunkt für jegliche Plug-in-Aktionen. Die Bootstrap-Datei muss in der ersten Ebene des Plug-in-Ordners liegen und als Dateinamen Bootstrap.php besitzen. Zunächst wird der Bootstrap-Rumpf definiert:

<?phpclass Shopware_Plugins_Frontend_SloganOfTheDay_Bootstrap extendsShopware_Components_Plugin_Bootstrap {}

Der Klassenname des Bootstrap setzt sich aus dem Shopware Namespace für Plug-ins (Shopware_Plug­ins), dem Plug-in-Bereich (Frontend, Backend oder Core), dem Plug-in-Namen (SloganOfTheDay) und dem Dateinamen (Bootstrap) zusammen. So wird das Plug-in korrekt erkannt und im Plug-in-Manager angezeigt (Abb. 1).

Abb. 1: Hier sehen Sie das Plug-in, wie es im Plug-in-Manager dargestellt wird

Damit das Plug-in installiert werden kann, muss nun die install-Funktion des Plug-ins implementiert werden:

public function install() { return true;}

Durch den Rückgabewert true wird mit­ge­­teilt, das...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang