Alles rund um Magento!

Archiv des Monats April, 2011

FACT-Finder-Features als Magento-Modul verfügbar

Seit Februar ist ein von Flagbit entwickeltes neues Magento-Modul für die Such- und Navigationslösung FACT-Finder verfügbar. Das Modul kann über Magento Connect bezogen und installiert werden. Mit der Extension können Magento-Nutzer derzeit die Fact-Finder-Features Fehlertolerante Suche, Suggest, Automatische Suchoptimierung, After Search Navigation ebenso wie den Campaign Manager in ihren Shop integrieren und auch das FACT-Finder-Management ins Magento-Backend einbinden. Flagbit arbeitet bereits an einer weiteren Version, in der zusätzliche Features ebenfalls kompatibel sind. Weitere Informationen können in einer kürzlich herausgegebenen Pressemitteilung von Flagbit nachgelesen werden.

Cache, Optimizer, DynamicCategories – neue Magento-Module von und mit Flagbit

Endlich haben wir es geschafft und mal wieder ein paar Module veröffentlicht. Diesmal dabei sind die Extensions Flagbit_Cache, Flagbit_Optimizer sowie Firegento_DynamicCategories. Wir haben die Module vorerst in Github geladen, werden das aber auch bald im Magento Connect nachholen. Da muss zunächst noch ein englischer Beschreibungstext verfasst werden.

weiterlesen »

Resümee des PHP Summit 2011 Spring

The Ultimate PHP Event Seit dem PHP Summit 2011 Spring in München sind inzwischen auch schon wieder drei Wochen vergangen. Leider musste ich fast direkt nach dem PHP Summit noch eine Woche Ski fahren und dann auch mal wieder etwas arbeiten. Daher ließ das Resümee etwas auf sich warten.

Alles in allem habe ich viele neue Impulse und Ideen von der Veranstaltung mitgenommen. Jedoch hätte meiner Meinung nach das Einstiegsniveau in den Vorträgen etwas höher sein können. So wurde zu Beginn oft Altbekanntes erzählt und nach dem ersten Drittel wurde es langsam interessanter. Meine Erwartungen waren diesbezüglich höher, aber das richtige Niveau für alle zu treffen ist bei einer größeren Veranstaltung natürlich unmöglich. Zur Vertiefung interessanter Themen ist es daher wohl besser gezielt kleine Schwerpunktschulungen zu buchen.

Sebastian hat natürlich PHPUnit vorgestellt. Mit Mock- und Stub-Objekten lassen sich Abhängigkeiten austauschen und somit vom Test ausnehmen. DbUnit ist eine Erweiterung für PHPUnit, die das Testen von datenbankgebundenen Anwendungsteilen erleichtert.

Mit phploc lassen sich Code-Statistiken erstellen. Nicht nur die Anzahl der Dateien, Verzeichnisse und Codezeilen, sondern auch Klassen, Methoden und McCabe-Metrik (Cyclomatic Complexity) werden ermittelt.

Mit dem PHP Project Wizard (ppw) lassen sich die Konfigurationen, die für einen automatisierten Build erforderlich sind einfach auf der Kommandozeile erstellen. Auf Github liegt ein fertiges Beispielprojekt zum “abgucken”. Ansonsten findet sich auf Sebastians Delicious-Account allerlei Nützliches.

Arnes Autoload-Builder erstellt einen Array-basierten Autoloader der durch die direkten Mappings von Klassennamen auf Pfade unnötige Abfragen an das Dateisystem vermeidet und somit schneller als fast jeder andere Autoloader sein dürfte.

FluentDOM bietet eine einfachere Schnittstelle für die PHP-DOM-Erweiterung. Über Gource und Logstalgia habe ich ja schon direkt von der Konferenz gebloggt.

Bei derUmstellung von PHP 5.2 auf PHP 5.3 lässt sich der Code mit einem Sniff für den PHP_CodeSniffer auf bekannte Problemstellen abklopfen.

Zum Verteilung und der eigenen Pakete bietet sich im PHP-Umfeld traditionell PEAR [pɛɹ] an. Mit den Package-Tasks lassen sich auch komplexere Post-Installations-Skripte aufrufen. Pirum ist ein kleines PHP-Skript, dass die für einen PEAR-Server nötigen Dateien statisch erzeugt und somit die Distribution von statischem Webspace aus (z. B. Github) erlaubt.

Und natürlich nicht zu vergessen, einer der wichtigsten Befehle für Konferenzen mit offenem WLAN oder allgemein für fremde Netze:

ssh -C -N -D 1080 -p 2222 -L 8888:localhost:8888 example@192.0.32.10

Abseits des offiziellen Programms kann ich die MilchundBar empfehlen wo wir einen netten Abend verbracht haben.

Git unverbindlich testen: git-svn

Wenn man Git erst einmal unverbindlich ausprobieren will ohne gleich das ganze Team auf eine neues SCM-System umstellten zu müssen, ist git-svn genau das Richtige. Es verhält sich zum SVN-Repository hin wie ein normaler Client, bietet aber lokal alle gängigen Git-Features. Branches und Tags lassen sich sowohl lokal als auch remote einfach per Kommandozeile anlegen. Diffs und lokale Commits gehen rasend schnell, weil die komplette Historie lokal vorliegt. Dazu checkt git-svn initial jede Version aus dem SVN-Repository aus und spielt die Versionsgeschichte lokal nach. Das dauert dann bei 1500 Commits auch mal eine halbe Stunde oder länger, aber das muss man ja auch nur einmal machen:

$ git svn clone -s svn://svn.example.org/my-cool-project

Die Option -s sorgt dafür, dass die Standard-SVN-Verzeichnisstruktur mit branches, tags und trunk erkannt wird und auch korrekt in Git als Branches und Tags abgebildet wird. Abweichende Ordnernamen lassen sich über weitere Kommandozeilenparameter konfigurieren. Nach geduldigem Warten listet Git auch brav alle SVN-Branches sowie den lokalen master-Branch auf:

$ git branch -a
* master
  remotes/production
  remotes/trunk

Will man nun ein neues Feature implementieren, kann man sich einfach einen lokalen Branch erstellen:

$ git checkout -b my-new-feature

Darauf kann man nun gemütlich arbeiten, ohne von anderen Änderungen beeinträchtigt zu sein. Will man seine Änderungen an das zentrale SVN-Repository zurückschicken, muss man erst lokal commiten und anschließend ins SVN-Repository:

$ git commit -a
$ git svn dcommit

Wenn man zwischendurch an einer anderen Aufgabe weiterarbeiten will (oder muss), kann man jederzeit einen neuen Branch erstellen oder in den master-Branch zurückwechseln:

$ git checkout master

Die aktuellen Änderungen aus dem SVN-Repository (das Pendant zu svn update) bekommt man mit:

$ git svn rebase

Ein bisschen ausführlicher und auf Englisch ist das Ganze auch in Bart’s Blog erklärt. Ansonsten helfen die umfangreichen Git-Hilfe-Seiten weiter. Zu fast jedem Befehl lassen sich mit git help <command> weitere Informationen anzeigen.

Kundenverlust im Checkout vermeiden

Über 50% der Kunden brechen ihren Einkauf in Online Stores noch ab, nachdem sie eigentlich schon zur Kasse gehen wollten. Eine nicht geringe Anzahl davon sicherlich deshalb, weil sie den Warenkorb als eine Art temporäre Wunschliste nutzen und von Beginn an überhaupt nicht die Absicht haben, etwas einzukaufen. Die sicherlich größere Gruppe jedoch verlässt den Shop, weil ein schlecht gemachter Bezahlvorgang viele Kunden verunsichert und überfordert. Dies ist oft auf ungenaue und unübersichtliche Programmierung zurückzuführen, die zu viele Unklarheiten hervorruft.

Das Smashing Magazine gibt in einem aktuellen Artikel Tipps, auf welche Aspekte Shopbetreiber bei der Erstellung des Checkouts ganz besonders achten sollten und wie teure Fehler vermieden werden können.
Autor Christian Holst weist in diesem darauf hin, dass viele große Websiten ihren Kunden zwar neue und auf den ersten Blick sehr imposante Features bieten, oftmals jedoch das 1×1 des Checkout-Prozesses nicht beherrschen. Kundenfreundlichkeit ist damit nicht gerade gewährleistet. Auch Holst zeigt sich beeindruckt von den Möglichkeiten, die die neuen Web-Technologien mittlerweile bieten, empfiehlt jedoch den Fokus zunächst auf die Basics wie eindeutige Erklärungen, gutes Formulardesign und sinnvolle Namensgebung der Eingabefelder zu legen, ehe man sich an ergänzende Ausführungen macht. Der Autor sieht keine Verbesserungen in diesem Bereich, solange Shopbetreiber nur versuchen möglichst viele aktuelle Techniken einzubauen, anstatt dem Kunden zunächst einmal einen verständlichen und eindeutigen Checkout-Prozess zu ermöglichen. Und das, obwohl es möglich ist, hier auch noch große finanzielle Verbesserungen zu erzielen. Gehen Sie die 11 Punkte des Artikels durch und überprüfen Sie, ob auch bei Ihrer virtuellen Kasse noch Steigerungspotenzial vorhanden ist.

Fundamental Guidelines Of E-Commerce Checkout Design

Magento Installation in der Shell

Warum einfach, wenns auch kompliziert geht? War die Shell sonst gerade gut genug, Magento Extensions per Kommandozeile ergänzend zum Grundgerüst zu integrieren, kann man damit auch komplett die neueste Magento Version installieren. Dafür bedarf es nur einer Kommandozeile.

Alle notwendigen Informationen können dann nicht nur in der normalen Installationsoberfläche eingegeben werden, sondern auch als Parameter in der Shell. Die Anbindung an die Datenbank ist ebenso hergestellt und auch der Encryption Key wird definiert. Statt sich dabei mühsam durch die einzelnen Installationsseiten zu klicken, haut man sich den Code auf die Platte und spart in Zukunft viel Zeit. So kann alles bequem in einem Aufwasch abgearbeitet werden und Magento ist auf diesem Wege ebenfalls und ohne Einschränkungen startklar. Ein weiterer Vorteil bei diesem Prozedere: Dank der automatisierten Magentoinstallation können auch Entwicklungsumgebungen zukünftig schneller aufgesetzt werden.

Und so gehts beispielsweise:

php -f $MAGE_DIR/install.php -- \
--license_agreement_accepted "yes" \
--locale "en_US" \
--timezone "Europe/Berlin" \
--default_currency "EURO" \
--db_host "localhost" \
--db_name "mydatabase" \
--db_user "usernr1" \
--db_pass "1234" \
--db_prefix "" \
--session_save "files" \
--admin_frontname "backend" \
--url "http://meineshopurl.de" \
--skip_url_validation \
--use_rewrites "yes" \
--use_secure "no" \
--secure_base_url "https://meineshopurl.de/" \
--use_secure_admin "no" \
--admin_firstname "Max" \
--admin_lastname "Mustermann" \
--admin_email "max@muster.de" \
--admin_username "super_admin" \
--admin_password "super_admin9876" \
--encryption_key "blablubb"

Page optimized by WP Minify WordPress Plugin