Alles rund um Magento!

Attributoptionen schnell über das Magento Backend löschen

Oftmals ist es in Magento nötig, die Attributoptionen zu löschen, gerade bei automatisierten Importen kann dies der Fall sein.
Leider ist es so, dass es sehr mühsam ist für jede Option den Button “löschen” zu betätigen, da es sich auch um mehr als tausend Optionen handeln kann. Ein einfacher schneller Lösungsansatz ist es, das folgende Javascript einfach in er Firebug Konsole auszuführen:

$$('.delete-flag').each(function(item){item.value=1});

Hier noch ein Screenshot, um es verständlicher zu machen:
Magento Screenshot Attribute

Einfache Contentpflege – Das interne CMS von Magento Enterprise

Magento wirbt damit, eine Open Source Software zu sein. Das heißt jedoch nicht zwangsläufig, dass das Programm nichts kostet. Seit 2009 bietet Magento Inc. (damals noch Varien) auch eine Enterprise Edition an, die knapp 13000$ im Jahr kostet. Doch was bekommt man dabei für sein Geld? Wir wollen in diesem und in weiteren Beiträgen erläutern, wo die Unterschiede zwischen Community und Enterprise Edition liegen, ob und wo der Mehrwert der Enterprise Edition deutlich wird. Im folgenden Artikel widmen wir uns dem internen Content Management System von Magento, erklären die vielfältigen Möglichkeiten der Kombination eines CMS mit einer E-Commerce-Software und zeigen, welche Zusatz-Features die Enterprise Version bereit hält.

CMS in Magento

Die Integration eines Content Management Systems in eine Online Shop-Software bietet vielfältige Vorteile. So können umfangreiche Inhaltselemente zur Produktvorstellung und zu Marketingzwecken direkt mit dem Katalogsystem interagieren und mit diesem verknüpft werden. Programmiererfahrung ist dabei nicht nötig, Hilfeleistungen wie ein WYSIWYG-Editor unterstützen den Anwender bei seinem Vorgehen. Flagbit hat auch deshalb mit TypoGento eine Extension entwickelt, mit der TYPO3 und Magento miteinander verknüpft werden können. Doch auch Magento verfügt bereits über ein integriertes CMS, mit dem sich vor allem in der Enterprise Edition einige nützliche Features nutzen lassen.

weiterlesen »

Produktkategorien in Magento sinnvoll sortieren

Ein interessante Aufgabe für Verantwortliche eines Online Shops ist es, die vorhandene Produktvielfalt für den Kunden besonders passend und relevant darzustellen.Während der eine Kunde nach besonders günstigen Angeboten sucht, möchte der nächste lieber neuere Artikel angezeigt bekommen. Eine bekannte Möglichkeit dafür ist eine sinnvolle Einteilung der Artikel in unterschiedliche Produktlisten. Diese können dann von den Kunden nach bestimmten Kriterien sortiert werden.

Sortierfunktion im Hein Gericke Shop mit den bekannten Möglichkeiten

In Magento können verschiedene Sortierfunktionen nach Preis, Name oder Artikelnummer konfiguriert werden, die Kunden bestimmte Anhaltspunkte geben. Doch oftmals ist auch gewünscht, dass bereits bei der Standard-Ansicht einer Kategorie eine sinnvolle Reihenfolge vorherrscht und Shopinhaber auch das ein oder andere Produkt pushen können. Dies ist bisher nur durch eine manuelle Konfiguration im Backend möglich, wo bestimmten Artikeln eine Nummer zugewiesen kann, nach der dann sortiert wird.

weiterlesen »

Neues Partnerprogramm bei Magento

Seit geraumer Zeit bietet Magento ein Partner-Programm an für Unternehmen, welche die Entwicklung von Magento vorantreiben sowie den Vertrieb und den Support der kommerziellen Enterprise Edition übernehmen. Flagbit war hier als Enterprise Partner engagiert.

Heimlich, still und leise hat Magento dieses (Solution) Partner-Programm nun wieder einmal überarbeitet. Statt Enterprise, Professional und Community Partnern gibt es nun Gold, Silver und Bronze Partner. Außerdem herrschen nun klare Regeln und Überwachungen bzgl. der Vorgaben an die verschiedenen Partner vor. Anbei findet ihr die neuen Partner-Logos; gerade das Gold-Partner-Logo hat bereits einiges an Kritik einstecken müssen – Magento versprach, hier noch einmal nachzulegen.

Aus unserer Sicht ist dieser Schritt zu begrüßen, weil die Zusammenhänge zwischen Partner Level und Magento Editionen doch zu stark miteinander zusammenhingen. Es erschien logisch, dass eine Enterprise Edition von einem Enterprise Partner bezogen werden muss, während ein Professional Partner nur die abgespeckte kommerzielle Version vertreibt. Dieser Missstand ist nun behoben. Auf der anderen Seite ist es aus unserer Sicht eher wichtig, dass eine Weiterentwicklung und Konzentration auf das Produkt stattfinden muss. Das Partnerprogramm ist schön und gut, aber wir haben bisher wichtigere Probleme, die auf eine Lösung warten.

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 »

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"

Zend_Cache Backends

Hier war in den letzten Monaten mal wieder Beitrags-Flaute, was vor allem daran liegt, dass ich seit etwa vier Monaten an einem Zend-Framework-Projekt entwickle und nur noch sporadisch mit Magento zu tun habe. Deshalb geht es auch heute nicht um Magento direkt, sondern um die Cache-Komponente von Zend Framework. Magento-Entwickler müssen jetz nicht gleich aufhören zu lesen, denn Zend_Cache bildet auch die Basis für den Cache in Magento.

Ein Cache besteht im Zend Framework immer aus einem Front- und einem Backend. Über das Frontend spricht die Anwendung den Cache an, übergibt Daten an den Cache, fordert Daten an oder deren Löschung. Das Cache-Backend kümmert sich um die tatsächliche Verwaltung der Daten. Daher gibt es für (fast) jede Speichermöglichkeit ein passendes Cache-Backend: Dateien (File), Datenbank (SQLite), Memcached (Memcached oder seit ZF 1.11 Libmemcached), APC und XCache. Varien hat Magento zusätzlich ein Cache-Backend für MySQL und eAccelerator spendiert. Wie dem aufmerksamen Leser natürlich schon aufgefallen ist, lassen sich die Backends in persistente und nicht-persistente Speicher unterteilen. Doch es gibt noch ein weiteres, wichtiges Unterscheidungsmerkmal: die Cache-Tag-Unterstützung. Mit Cache-Tags lassen sich Cache-Einträge gruppieren und z.B. gemeinsam konfigurieren oder löschen (Was Tags halt eben so tun). Die Cache-Verwaltung im Adminhtml von Magento greift genau darauf zurück: Cache-Tag-basiertes Aktivieren, Deaktivieren oder Löschen des Caches.

weiterlesen »

REST API testen

Um die Vernetzung von (Web-)Applikationen zu ermöglichen sind APIs erforderlich, die den strukturierten Datenaustausch zwischen den Systemen ermöglichen. Dies ist eines der grundlegenden Konzepte des “Web 2.0″.

Die eigene Anwendung mit einem REST API auszustatten ist bei einer Zend-Framework-Anwendung dank Zend_Rest nicht schwer. Will man jedoch auch sicherstellen, dass die API das tut, was sie soll – auch nach einer noch so kleinen Änderung – kommt man um das Testen nicht herum.

Eine Möglichkeit ist hier das http4e-Plugin für Eclipse, das auch Import- und Export in verschiedene Formate erlaubt. Das ist zum Entwickeln und Debuggen einer API sehr komfortabel und angenehm. Bei größeren Projekten wird das ganze dann doch schnell unübersichtlich und nicht jeder will gleich Eclipse installieren um eine REST API zu testen. Die $9 für die Lizenz dürften wohl kaum den Ausschlag geben.

Als Alternative bin ich heute auf soapUI gestoßen. Durch die Baumansicht lassen sich auch größere Projekte übersichtlich verwalten. Die Online-Dokumentation erleichtert einem den Einstieg. Leider hat bei mir (unter Mac OS X) das Paste bei den Parametern nicht funktioniert und das Abtippen einer SHA1-Prüfsumme ist nicht gerade mein Lieblingssport. Welche Features die kostenpflichtige Version mehr bietet hat sich mir auf die Schnelle nicht erschlossen, aber vielleicht funktioniert da ja das das Copy & Paste ;)

Wie testet ihr eure APIs? Die lassen sich ja – im Gegensatz zu irgendwelchen Interna – relativ gut testen.

Update:
Jetzt habe ich noch ein bisschen mir soapUI rumprobiert und festgestellt, dass man damit auch ganze Test-Cases erstellen kann und Bedingungen (XPath, XQuery, Script-Vergleiche, Contains, …) für die Response festlegen kann. Das klingt doch gut :)

Logrotate für Magento

Auch wenn an machen Stellen empfohlen wird, die Logfiles aus Performance-Gründen auszuschalten, halte ich nicht viel davon. Denn wenn einmal ein Fehler nicht reproduzierbar auftritt, erweisen sich die Logfiles oft als der einzige Ansatzpunkt zur Fehlersuche. Auch bei reproduzierbaren Fehlern erlauben die Logfiles Rückschlüsse darauf, wie oft der Fehler in der Vergangenheit aufgetreten ist. Wenn man die Logfiles jedoch einfach so immer weiter wachsen lässt, werden sie immer unübersichtlicher und verbrauchen einfach immer mehr Platz. Mit dem Unix-Tool logrotate kann man Logfiles einfach und bequem per Cronjob komprimieren, kopieren und nach einem konfigurierbaren Zeitraum löschen lassen.

Zunächste muss eine entsprechende Konfiguration angelegt werden. Die Pfadangaben beziehen sich auf Debian Lenny. Als Root am besten eine neue Datei /etc/logrotate.d/magento anlegen, ansonsten bietet sich ~/.logrotate.conf an. Im Beispiel werden im Wochenrhythmus verschoben (weekly) und jeweils 5 Versionen (rotate 5) vorgehalten. Die alten Logfiles automatisch komprimiert (compress).

/srv/www/var/log/exception.log {
        weekly
        rotate 5
        compress
}
/srv/www/var/log/system.log {
        weekly
        rotate 5
        compress
}

Die Konfigurationsdatei in /etc/logrotate.d sollte eigentlich bereits automatisch ausgeführt werden. Für andere Dateien muss noch ein separater Cronjob eingerichtet werden:

2 3 * * * /usr/sbin/logrotate -s ~/.logrotate.status ~/.logrotate.conf
« Vorherige Einträge

Page optimized by WP Minify WordPress Plugin