Meine Checkliste bei der Analyse von Magento Shops

Der erste Schritt vor der Arbeit an einer bestehenden und mir unbekannten Magento Installation, ist bei mir immer eine Shop Analyse, nicht nur um die Anforderungen und Prozesse des Händlers besser zu verstehen, sondern auch und vor allen Dingen, um die Qualität einzuschätzen und mögliche Probleme frühzeitig zu erkennen. Denn leider sind viele Shops ohne Kenntnis von Konventionen und Best Practices “zusammengebastelt”, was dazu führt, dass:

  1. Die Performance leidet
  2. Sicherheitslücken entstehen
  3. Updates unmöglich werden
  4. Der Code nicht wartbar ist

Punkt 1 und 2 können den Händler ganz direkt schmerzhaft treffen, Punkt 3 und 4 führen mit der Zeit dazu, dass Bugs sich anhäufen, neue Änderungen häufig zu neuen Fehlern an anderer Stelle führen, die immer schwerer zu lösen sind.

Das ist dann häufig der Punkt, an dem eine neue Agentur oder ein neuer Entwickler gesucht wird, also ist es kein Zufall, dass Shops meist in solch degeneriertem Zustand auf meinem Tisch landen. Umso wichtiger ist die Analyse als erster Schritt, noch vor einem Angebot für Weiterentwicklungen, um nicht blind in die selbe Falle zu laufen wie die Vorgänger, und von Vorneherein für Klarheit auf beiden Seiten zu sorgen.

Analyse in drei Stufen

Die Analyse erfolgt in drei aufeinander aufbauenden Stufen und ist so aufgeteilt, dass nach der ersten Stufe (1-2 Stunden Aufwand) bereits eine grobe Einschätzung über Qualität und Handlungsbedarf gegeben werden kann, und ich nach der zweiten Stufe in der Lage wäre, ein Angebot über Aufräumen und Updaten des Shops zu machen.

Stufe 1: Erster Eindruck

  • Die installierte Magento-Version wird ermittelt, je älter sie ist, desto dringlicher aber auch komplexer wird ein Update
  • Liste installierter Extensions wird durchgesehen und dabei auf folgendes untersucht:
    1. Anzahl Extensions, Anzahl für diesen Shop entwickelter Module
    2. Bekannte Extensions und Anbieter (positiv oder negativ)
    3. Verschlüsselter oder verschleierter Source Code
    4. Deaktivierte und ungenutzte Extensions
  • Grobe Sicherheitslücken, z.B. sensible Dateien von außen erreichbar, aktuelle Sicherheitspatches nicht eingespielt
  • Anzahl Core Hacks (geänderte Dateien in app/code/core und app/design/frontend/base) und Core Overrides (Dateien in app/code/local/Mage)
  • Daten: Anzahl Stores, Anzahl Produkte, verwendete Produkttypen
  • Verwendete Tools, falls ersichtlich (Versionsmanagement, modman, Composer, …)
  • Serverinfos, falls verfügbar (Hoster, PHP Version, MySQL Version, Varnish, …)
  • Error-Logs, falls verfügbar (häufig auftretende Exceptions, Warnings und Notices)

Im Extremfall, beispielsweise einem stark modifizierten Magento 1.3 Shop, kann man hier schon abbrechen und zu einer Neu-Entwicklung raten. In jedem Fall kann abgeschätzt werden, wie aufwändig ein Update wird und ggf. zu sicherheitskritischen Funden dringende Handlungsempfehlung gegeben werden.

Hilfreiche Tools:

Stufe 2: Probleme und Handlungsbedarf

Nun wird der Code genauer unter die Lupe genommen. Bei Unklarheiten sollte auf jeden Fall Rücksprache mit dem Kunden getroffen werden, um keine falschen Annahmen anzustellen.

  • Zu den in Schritt 1 gefundenen Core Hacks und Core Overrides: Zweck ermitteln, mögliche saubere Lösungen aufzeigen (z.B. via Konfiguration, Theme oder eigenem Modul)
  • Zu den installierten Extensions: Zweck ermitteln, installierte Version und aktuelle Version ermitteln, jeweils Kompatibilität zur aktuellen Magento-Version laut Hersteller prüfen
  • Liste von Class Rewrites erstellen, Risiko von Konflikten bewerten (Ein Rewrite von Mage_Sales_Model_Order lässt z.B. die Alarmglocken klingeln)
  • Diff zwischen Theme und zugrundeliegendem Default-Theme prüfen.
  • Oberflächliche Untersuchung von Themes, Custom Modules und unbekannter Extensions auf Best Practices, Suche nach Red Flags, Performance-Krücken und Sicherheitslücken

Hilfreiche Tools:

Weitere Tipps:

Stufe 3: Ausführlicher Code Review

Nun werden Themes, Extensions und Custom Modules und auch die Shop-Konfiguration auf Herz und Nieren untersucht, wobei man je nach Kundenwunsch und Budget beliebig in die Tiefe gehen kann.

Aufgrund der breiten Untersuchung in Stufe 1 und 2 und Erfahrungswerten kann ich diese Stufe aber in der Regel überspringen und so nach 4-6 Stunden Analyse eine Aufwandschätzung abgeben für:

  1. Aufräumen: Ungenutzte Extensions entfernen, problematische Extensions ersetzen, Core Hacks in saubere Module überführen, Themes refaktorisieren
  2. Aktualisieren: Extensions und Magento

Toolbox

Ich habe oben im Text schon einige Tools empfohlen. Alles was ich für eine Shop-Analyse mit diesen Tools benötige, habe ich in einem Repository zusammengestellt, das ich gerne zum freien Gebrauch zur Verfügung stelle:

https://github.com/schmengler/magento-audit

Selbstverständlich ersetzen sie kein geschultes Auge, sondern unterstützen es nur. Die Toolbox richtet sich also an Entwickler und Agenturen, die den Prozess der Analyse standardisieren und effizienter gestalten wollen, die Ergebnisse sind ohne Vervollständigung und Interpretation für den Händler relativ wertlos.

Voraussetzungen:

  • Eine vollständige Kopie des Source Codes (“/media” darf gerne ausgeschlossen werden, um nicht mehrere Gigabytes an Bildern herunterladen zu müssen)
  • Eine Kopie der Datenbank (gerne ohne Kunden- und Verkaufsdaten)
  • Angepasste app/etc/local.xml mit Zugangsdaten zur lokalen DB
  • PHP
  • Unix Shell (Standard-Terminal unter Linux und Mac, Cygwin oder Git Bash unter Windows)

Report

Die Ergebnisse aus Stufe 1 und Stufe 2 fasse ich in einem Spreadsheet zusammen, üblicherweise gruppiert nach

  • Allgemein – Magento
  • Allgemein – Server
  • Installierte Extensions
  • Core Hacks
  • Class Rewrites
  • Sonstiges

In jedem Blatt gibt es eine Spalte “Action Required”, die bei Bedarf mit der notwendigen oder empfohlenen Maßnahme befüllt wird.

Magento Audit - Extensions
Beispiel: Installierte Extensions
Magento Audit - Core Hacks
Beispiel: Core Hacks

Der Report ist so gestaltet, dass für den Händler ersichtlich ist, was zu tun ist und wo die Probleme liegen. Er ist auch ausreichend technisch detailliert, dass er auch einer anderen Agentur oder den eigenen Entwicklern übergeben werden kann, sollte ich das Update im Anschluss an die Analyse nicht selbst übernehmen.

Eine schriftliche Zusammenfassung mit der Gesamteinschätzung und mündliche Besprechung der Ergebnisse, gehört aber unbedingt dazu. Bei problematischen Extensions und Modifikationen sollte auch immer die Frage gestellt werden, ob sie wirklich benötigt werden und wenn ja, wozu.

Haben Sie Interesse an einer Analyse Ihres Shops? Kontaktieren Sie mich!

4 Replies to “Meine Checkliste bei der Analyse von Magento Shops”

  1. Hallo, ich bin eigentlich über die Suche nach der Ermittlung der aktuellen Magento Version (Lizenz) hierhergekommen. Nicht ganz mein gewünschter Treffer aber trotzdem ein wertvoller Artikel. Danke dafür!

    Gruß Marko

Comments are closed.