Magento, eine kritische Betrachtung

veröffentlicht in Consulting am 10. Jul. 2011 Tags: , ,

Im Open-Source Bereich ist Magento zur Zeit eine der beliebtesten eCommerce Lösungen. Wir hatten vor kurzem die Gelegenheit in einigen Projekten mit Magento zu arbeiten und sind damit in der Lage das Potential genauer einzuschätzen. Mit diesen Beitrag wollen wir ein kritischen Blick auf das Shop-System werfen und die Frage beantworten, ob und unter welchen Umständen wir diese Lösung unseren Kunden empfehlen würden und worin potentielle Probleme begründet liegen.

1) Betrachtung aus Sicht des Entwicklers

Auf den ersten Blick sieht Magento sehr vielversprechend aus. MVC-Design-Pattern, Events, viele Module, Konzepte mit Collection usw.,  sind Eigenschaften die einem erfahrener Entwickler und Softwarearchitekten den Eindruck aufzwingen, dass es sich bei Magento um moderne, gut konzipierte Software handelt.

Nach kurzer Zeit merkt man jedoch, dass nicht alles Gold ist, was glänzt. Funktionen tun andere Dinge als die Dokumentation vorgibt,  soweit überhaupt eine Dokumentation vorhanden ist. Collections verhalten sich dann leider auch anders als erwartet. Wichtige Funktionalität ist an Orten im Code untergebracht, an denen man sie nicht ansatzweise suchen würde.

Insbesondere bei der Verbindung zwischen Application und Datenbanklayer schlägt die Vielzahl von Abstraktionsschichten voll durch und führt zu einer Flut an SQL-Statements. Diese werden dann auf Entity-Tabelle, Flat-Tabellen, EAV-Tabellen und Index-Tabellen ausgeführt.

Insgesamt stellt dies zwar aus Sicht der Datenhaltungstheorie ggf. eine optimale Lösung dar, allerdings führt Sie zu maximaler Komplexität und daher äußerst schlechter Performance.

2) Community vs. Commercial Licence

Magento hat eine Dual-Licencing Strategie. Die Community Edition steht unter OSL. Daneben gibt es eine kommerzielle Enterprise Lizenz. Die Enterprise Version hat einige zusätzliche Features. Die Interessantesten unter Ihnen sind die Einbindung von Apache SOLR für die Suche und der Full-Page-Cache. Zumindest offiziell gibt es auch einen Support.

In der Praxis liefert dieser jedoch kaum einen Vorteil. Tickets werden ewig oder gar nicht bearbeitet. Da es sich bei einen Shopsystem immer um eine stark anwendungsbezogen angepasste Anwendung handelt, ist man bei der Anpassung ohnehin meist sich allein gestellt, selbst wenn Probleme in den Core Komponenten auftreten.

Full-Page-Cache ist zwar eine nette Sache, aber selbst mit selbigem, ist Magento so langsam, dass das Nutzererlebnis nicht überzeugen kann. Für eine eCommerce Anwendung ist das in unseren Augen eine maximal ungünstige Situation. Entweder man lebt damit, das die Performance schlecht ist, dann bleibt bestenfalls (ein Teil) der Kundschaft aus. Oder man investiert sehr viel Zeit und Geld in Performancetuning.

3) Was wirklich nervt

Ein paar Bugs muss man jeder Software verzeihen. Die entscheidende Frage ist aber wie schwer die Bugs wiegen bzw. welcher Aufwand zum Fixen durch Updates oder Workarounds entsteht. Magento ist hier ein sehr negatives Beispiel. Es verlangt von einem Entwickler nicht nur eine hohe Frustrationsgrenze ab, sondern auch von Kunden, da einige Fehler erst im produktiven Betrieb (also unter Volllast) zu Tage treten. Die ist für ein Kunden mit ausführlicher und gut organisierte Test- und Stagingphasen besonders ärgerlich. Insgesamt hat Magento unseres Erachtens noch zu viele Fehler, insbesondere wenn es im Enterprise Bereich eingesetzt werden soll.

4) Fazit

Unser Fazit ist, das die Qualität von Magento ingesamt nicht stimmig ist. Die Enterprise Edition ist ihr Geld unseres Erachtens nicht wert, da ein funktionierender Support quasie nicht existiert. Die Performance ist nicht ein Problem, sondern das Problem, womit wir praktisch jedem Kunden abraten würden auf Magento zu bauen.

Für kleiner und mittlere Projekte ist Magento einfach zu viel Code und viel zu komplex (Design Paradigma). Man ist daher mit einem kleineren performanteren Shop wie Presta vermutlich besser bedient. Für größere Projekte im Enterprisebereich ist Magento vor allem wegen seiner Performanceprobleme nicht geeignet. Wichtige Funktionen müssen zum Teil per Java oder JavaScript nachgerüstet werden.

Der Designoverhead (Abstraktionsschicht) sorgt dafür dass ein Export von Produkten aus Magento gut 50 Stunden dauern. Ein SQL-Statement an dieser Stelle  wäre sicher deutlich performanter. Wir sind der Auffassung, dass für vergleichbare Investitionssummen eine, auf eigenen funktionalen Anforderungen basierende Anwendung mit einem PHP-Framework der Wahl entwickelt werden kann. Dann kann man die Funktionalität abbilden, die wirklich gebraucht wird und eine Performance erreichen, die im Falle Magentos nur mit viel bis sehr viel Tuning zu erreichen wäre.

Unseres Erachtens liegt die wesentliche Ursache des Problems darin, dass es sich bei Magento um ein künstliches Open Source Projekt handelt, dass weniger den Nutzen einer breiten Community von Anwendern (die allerdings sicher existieren würde) als mehr die strategischen Ziele des Herstellers und dessen Kapitalgebern im Auge hat. Die Tatsache, dass Ebay die Mehrheit der Anteile an  Magento Inc. übernommen hat verstärkt diesen Eindruck weiter

Über Markus Schneider

Als Analytiker und Informatiker ist Markus Schneider Experte für Shop- und ERP-Systeme. Dabei setzt er sein fundiertes Wissen insbesondere im Bereich der Open Source Software ein und kann verschiedene
Anwendungssysteme, z.B. Oxid eSales, OTRS, und Solr Suche, darin integrieren. Auch mit der Onlineshopsoftware Magento kennt sich Herr Schneider bestens aus. Zudem greift er auf gesammelte Erfahrungen unterschiedlicher Systeme wie Sage, SAP und speziell OpenERP zurück.

4 Kommentare zu 'Magento, eine kritische Betrachtung'

Kommentare als RSS

  1. Joscha Krug sagt,

    am 11. Jul. 2011

    Interessant solch ein Fazit.
    Interessieren würde mich, welches System eine wirkliche Alternative ist. Leider kann ich zu Presta nichts sagen.

    Zwei Fragen: Woher kommen die 50 Stunden? Über wieviele und welche Art von Produkten sprechen wir da?

    Der Zusammenhang von “schlechte Performance und Designfehler” und “strategische Entscheidung für Kaptialgeber” zu nennen, halte ich für eine gewate These! Wo sollte deren Interesse an “unbrauchbarer” Software liegen?

    Gruß Joscha

  2. fkramer sagt,

    am 14. Jul. 2011

    Bei den 50 Stunden handelt sich es um eine fünfstellige Anzahl von Produkten. Natürlich hängt das davon ab, welche Eigenschaften die Produkte haben. Eine konkrete Zahl hängt auch von der eingesetzten Hardware ab, deshalb darf das nicht als Benchmark verstanden werden, sondern nur als Beispiel an dem man sieht, dass mit dem üblichen Performancetuning und schnelleren Servern das Problem nicht so einfach erschlagen ist.

    Für Magento-Nutzer sollte das eine wesentliche Rolle spielen. Wenn sie ihr Geld in Anpassung investieren, welche bei der richtigen Wahl des Entwicklungsframeworks nicht nötig gewesen wären, dann leiden darunter die Features für die sie das Geld eigentlich geplant haben und nicht zuletzt der Return on Investment (ROI).

    Wichtig ist auch zu wissen, dass über den gesamten Lebenszyklus von Software ungefähr 80% des Kapitals für Betrieb und Wartung ausgegeben werden.
    Dies sollte man von Anfang an in die Betrachtung mit einbeziehen und sich nicht von hübschen Farben und gutem Marketing blenden lassen. Vor einer soliden Einsatzentscheidung lohnt es sich also durchaus einmal
    von fachkundigen Experten analysieren zu lassen, ob es nicht solche Bottlenecks im Quellcode oder Softwaredesign gibt.

    Nutzern von Intershop Enfinity Multisite sei gesagt, dass auch hier ein Produktdatenexport über XML-Flatfliles sehr sehr lange dauert. Magento ist das vermutlich nicht schlechter, aber halt leider auch nicht besser.

  3. Jeanny sagt,

    am 23. Aug. 2011

    Folgende Shoplösungen habe ich getestet und für mies befunden:

    Os Commerce: Sicherheitslücken, die man Kunden nicht zumuten kann, zudem nicht für Anfänger geeignet!

    XT Commerce: Gleiche wie OS. Aber immerhin schon ein paar mehr Anpassungen möglich, aber auch nichts für Starter.

    Gambio: XT Alternative mit Anpassungsmöglichkeiten. Kostet pro Jahr 149 Euro Support und es gibt selten welchen, wenn man ihn wirklich braucht.

    epages über STRATO oder 1&1: Kostenpunkt 60 Euro monatlich. Anpassung möglich, aber eher wenig. Googleauffindbarkeit=0 (es sei denn sie haben das inzwischen geändert)

    Shopfactory: Hier fehlt die Möglichkeit zum Angebot für Downloadartikel und die Anpassbarkeit ist sehr eingeschränkt. Kostenpunkt: 75 Euro monatlich.

    Kleinere Shops: Hier fehlen die Alternativen zu Artikelattributen und Downloadartikeln.

    Fazit: Nachdem man sich in Magento eingearbeitet hat, läuft er rund und macht keine Probleme. Natürlich hat auch er Nachteile und Vorteile, aber für eine kostenfreie Alternative ist es ein Pluspunkt!

  4. fkramer sagt,

    am 28. Aug. 2011

    Hallo Jeanny, sicher muss man bei der Betrachtung welches Shopsystem sich eignet grundsätzlich zunächst mal die konkreten Anforderungen erheben.
    Was ich an deinem Vorgehen auch gut finde ist, dass Du nicht grundsätzlich NUR Open Source oder NUR proprietäre Lösungen einsetzen willst, denn mit der Prämisse wird meines Erachtens
    bei der Wahl einer geeigneten eCommerce Plattform nichts.

    Dennoch möchte ich anregen, dass du für eines deiner nächsten Kundenprojekte vielleicht auch noch mal Presta, Oxid und xtcModified in die Betrachtung mit einbeziehst.
    Darüberhinaus wäre natürlich mal ein tabellarischer Vergleich der Funktionalitäten, Performance und Architektur eine wirklich interessante Sache, die jeden Nutzer eines Shopsystems auch wirklich weiterbringt.