Pickware Blog
Archiv
| 23.07.2018

PHP Code-Einblick: Shopware vs. Magento

Mit Pickware waren wir letzte Woche auf einem Meetup der PHP User Group Rheinhessen in Mainz bei netz98 vertreten. Regelmäßig treffen sich Entwickler der PHP User Group, um sich über unterschiedliche Aspekte der PHP-Programmierung auszutauschen. Als Thema für diesen Abend hat die User Group „Shopware vs. Magento“ gesetzt. Die beiden Systeme sind in ihrem Funktionsumfang zwar recht unterschiedlich, sind jedoch beide in PHP programmiert. Ausgehend von der Funktionsebene wurden die beiden Systeme aus technischer Perspektive miteinander verglichen.

Darauf aufbauend tauschten sich die Entwickler aus beiden Welten über Grenzen aus, auf die sie stoßen und welche Lösungsansätze verwendet werden. Wir haben an dem Abend die Vorstellung von Shopware übernommen.

Aus den vor Ort besprochenen Themen lassen sich die wichtigsten und interessantesten Erkenntnisse aus folgenden Punkten ziehen:

Als Basis für die Betrachtung standen die Magento Entwicklungsversion 2.3 sowie die aktuelle Shopware Version 5.4 zur Verfügung.

APIs / Schnittstellen

Im Bereich APIs und Schnittstellen zeigt sich ein großer Unterschied zwischen Shopware und Magento. Während Magento mehrere Protokolle für die API unterstützt (JSON-REST, SOAP und demnächst auch GraphQL), konzentriert sich Shopware derzeit noch auf JSON-REST. Mit dem Update auf Shopware NEXT werden zukünftig ebenfalls mehrere Protokolle unterstützt.

Ein sehr nützliches Integrationsfeature der Shopware-REST-API ist, dass Produkte im Batch erstellt und aktualisiert werden können. Dieses Feature bietet Magento in der aktuellen Stable-Version noch nicht an.

Darüber hinaus ist für Entwickler interessant, dass Magento bereits viele Ressourcen über die API bereitstellt und somit viele Endpoints vorhanden sind. Dies ist bei Shopware derzeit noch nicht der Fall, weshalb die Abdeckung kleiner ist. Besonders im Bereich der API wird deutlich, dass Magento sein großes Update auf Magento 2 vor etwa zweieinhalb Jahren mit der neuen Software-Architektur bereits hinter sich hat. Bei Shopware ist dieser Update-Prozess momentan unter den Namen Shopware NEXT in vollem Gange. Entsprechend darf man auf den neuen, optimierten Code und die damit verbundenen Neuerungen gespannt sein.

Erweiterbarkeit

Beide Shopsysteme unterstützen die Erweiterbarkeit durch Plugins / Module. Da sich die zugrundeliegenden Anforderungen ähneln und die Möglichkeiten, Erweiterbarkeit mit PHP im Web-Kontext umzusetzen für beide Systeme gleich sind, sind hier viele Gemeinsamkeiten festzustellen. So setzen beide Systeme auf Dependency Injection. Bei Magento erfolgt die Registrierung eigener Services über XML-Konfigurationsdateien, bei Shopware entweder programmatisch über Events oder ab Version 5.2 auch per XML-Datei.

Magento bringt neuerdings ein Framework zur Aspektorientierten Programmierung mit, das grob mit den Hook-Events in Shopware vergleichbar ist. Beide Ansätze werden durch generierte Proxies ermöglicht.

Beim Templating ist jedoch ein großer Unterschied erkennbar: Während in Shopware Smarty-Templates zum Einsatz kommen, setzt Magento nach wie vor auf reine PHP-Dateien.

Konfigurationsmanagement

Am Beispiel der Preisberechnungsregeln haben sich die Teilnehmer unterschiedliche Konfigurationsmöglichkeiten angeschaut. Magento bietet Warenkorbregeln an, die der Shopbetreiber aus UND/ODER-Verknüpfungen in beliebiger Schachtelungstiefe frei festlegen kann. Der Shopbetreiber hat dadurch eine große Flexibilität und kann zum Beispiel Rabatte in allen erdenklichen Formen umsetzen. Dies kann jedoch dazu führen, dass die Verwendung des Regelsystems recht komplex ist und dass nach der Festlegung von Regeln durch den Shopbetreiber möglicherweise unerwartete Konsequenzen auftreten, da nicht alle Wechselwirkungen einfach zu überblicken sind.

Bei Shopware ist das System zur Preisberechnung einfacher gehalten und orientiert sich ausschließlich an konkreten und gängigen Anwendungsfällen aus dem Shopalltag. Dies eröffnet dem Shopbetreiber zwar nicht alle erdenklichen Rabattkombinationen, erhöht jedoch die Benutzerfreundlichkeit und den Überblick. So können beispielsweise einzelnen Kundengruppen Rabatte zugeordnet werden oder ab einem bestimmten Warenwert prozentuale oder absolute Rabatte abgezogen werden.

CMS / Einkaufswelten

Während Magento einige Stärken im API- und Konfiguratiosbereich vorweist, punktet Shopware deutlich mit den optischen Möglichkeiten zur Shopgestaltung. Die Integration von Einkaufswelten in den Onlineshop macht es möglich, dass Onlineshopbetreiber beeindruckende Landingpages, überzeugende Produktpräsentationen oder attraktive Rabattaktionen selbst erstellen können. So werden im Onlineshop nicht nur Produkte verkauft, sondern Geschichten erzählt. Wie in einem CMS werden Contentbereiche, Medien- und Produkteinbindung definiert, Verlinkungen untereinander hinzugefügt und so ein einzigartiges Kauferlebnis geschaffen.

Wir freuen uns über das rege Interesse an dem Meetup, die vielen Besucher und sind gespannt auf die nächsten Meetups und die Themen, die wir dort diskutieren werden!

Newsletter
Bleibe immer auf dem Laufenden
Jetzt anmelden
Teilen