# magelounge – Volltexte aller 31 Beiträge
> Archiv des deutschsprachigen Magento-Blogs von Ralf Siepker (2010–2013). Übersicht und Fakten: https://magelounge.de/llms.txt
---
## Magento Community 1.8 Update erscheint Ende September / Magento 2 steht aus
Datum: 2013-09-02 · Kategorien: Magento · URL: https://magelounge.de/2013/09/magento-community-1-8-update-erscheint-ende-september-magento-2-steht-aus/
Am 29. August fand eine Telefonkonferenz mit Mitarbeitern Mosses Akazian, Piotr Kaminski (Produkt-Manager der Version 1.x) von Magento/ebay sowie den Mitgliedern Brent Peterson, Ben Marks, David Shuford, Kris Brown, Sherrie Rohde, Kimberely Thomas, Sylvain Rayé und Tom Robertshaw aus dem Bereich der Magento Community statt. Ziel dieser Telefonkonferenz war es, den aktuellen Stand zur Entwicklung von Magento 1.8 und Magento 2 zu kommunizieren sowie Magentos Commitment zur Community herauszustellen.
Magento Community Edition 1.8.x
Die Alpha-Version von Magento 1.8 wurde bereits im Mai auf der Imagine in Las Vegas vorgestellt und kurz darauf freigegeben. Die stabile Version soll jetzt Ende September 2013 erscheinen. Mit dieser Version werden vor allem Rundungsprobleme und Fehler bei der Steuerberechnung behoben. Für Ende des vierten Quartals ist die Version 1.8.1 vorgesehen. In diese Version sollen dann auch die Fehlerkorrekturen einfliessen, die auf diversen Bugathons in diesem Jahr behoben wurden. Auch wird Redis als Cache-Backend unterstützt werden. Die entsprechenden Release-Notes wird man dann mit dem Update einsehen können.
Es wurde auch deutlich herausgestellt, das die mit Magento Enterprise Edition 1.13 eingeführte Art der URL-Key-Erstellung auf Datenbankebene nicht in die Community Edition einfliessen wird. Dieses wurde durch ein Twitter Post von Piotr Kaminski bestätigt.
Magento 2
Langfristig gesehen wird weiterhin der Fokus auf Magento 2 gelegt. Hier werden alle neuen Features einfliessen. Magento 2 befindet sich immer noch im Projekt-Status, eine Alpha-Version ist noch nicht in Sicht. Allerdings fand vor ca. zwei Wochen ein Update auf Github statt, das erste nach über fünf Monaten.
Magento 2 Backend im aktuellen Release
Weitere Infos in Englisch finden sich hier: http://www.meanbee.com/news/magento-community-update.html
---
## Fehleranzeige abschalten in Magento Enterprise Edition 1.13
Datum: 2013-05-07 · Kategorien: Bugfixes · URL: https://magelounge.de/2013/05/fehleranzeige-abschalten-in-magento-enterprise-edition-1-13/
Nur ein kleiner Hinweis. In der gerade veröffentlichten Enterprise Edition 1.13 findet sich folgende Zeile in der index.php
ini_set('display_errors', 1);
Fehler sollte man natürlich auf einem Livesystem nicht dem Besucher anzeigen. Deshalb sollte man die Zeile wie folgt ändern:
ini_set('display_errors', 0);
---
## Links der Woche 8/13
Datum: 2013-02-22 · Kategorien: Links der Woche · URL: https://magelounge.de/2013/02/links-der-woche-8-13/
Nach langer Zeit gibt es mal wieder die Links der Woche im Bereich Magento. Hier einige interessante Beiträge in anderen Blogs.
Andreas von Studnitz zeigt in einem Beitrag auf, wie man im Magento-Backend Einfluss auf das Admin-Menü nehmen kann. Hier wird ein Modul vorgestellt, bei dem man Grafiken einfügen, einzelne Menüpunkte hervorheben oder andere ausblenden kann. Weiterhin werden einzelne Menüpunkte nur bei bestimmten Konfigurationsoptionen anzeigt:
Link: http://www.integer-net.de/magento-anpassung-der-admin-konfiguration/
Fabian Blechschmidt schreibt immer, wenn er unterwegs ist, an seinem Buchprojekt zu Magento. Arbeitstitel ist zur Zeit: The Hitchhikers Guide to Magento. Nicht nur als Douglas Adams-Fan sollte man das im Auge behalten.
Link: http://blog.fabian-blechschmidt.de/book-project/
Matthias Zeis beantwortet Fragen aus seinem Blog. In diesem Beitrag wird erklärt, wie man Kundengruppen in Magento einen Rabatt gewährt.
Link: http://www.matthias-zeis.com/archiv/wie-man-kundengruppen-in-magento-rabatt-gewahrt
Und hier noch eine kurze Erklärung der Commercers inkl. Lösungweg, warum über die Layout Updates in Magento die Toolbar nicht ohne weiteres entfernen lässt.
Link: http://www.commercers.com/blog/?p=1297
---
## Magento Hackathon in Zürich vom 8.-10. März 2013
Datum: 2013-02-16 · Kategorien: Allgemein · URL: https://magelounge.de/2013/02/magento-hackathon-in-zurich-vom-8-10-marz-2013/
Nach den Magento Hackathons in München und Berlin findet jetzt Anfang März auch der erste Schweizer Magento Hackathon in Zürich statt. Das Veranstaltungsdatum ist der 8. bis 10. März 2013, die Kosten für den Hackathon betragen 40,- Euro.
Event bei Google+
Weitere Infos: http://www.mage-hackathon.de/
---
## Magento Benutzerhandbuch von Techdivision kostenlos zum Download
Datum: 2013-02-11 · Kategorien: Magento-Einstieg · URL: https://magelounge.de/2013/02/magento-benutzerhandbuch-kostenlos-zum-download/
Das Magento Benutzerhandbuch von Techdivision war schon immer eine gute Referenz für Shopbetreiber und Magento-Interessierte, die sich ein wenig tiefer mit dem Magento-Shop auseinander setzen wollten. Techdivision bietet das Handbuch mittlerweile in Version 6 zum Download an. Bisher war dies zum Preis von 34,90 Euro erhältlich.
Ab sofort steht das Magento Handbuch allen Interessierten auf der Website von Techdivision unter http://www.techdivision.com/de_de/leistungen/magento.html zum kostenlosen Download zur Verfügung. Als kleine Gegenleistung wird ein Tweet bei Twitter oder ein Facebook-Post gewünscht. Das Handbuch basiert auf der Magento Community Version und erklärt auf rund 350 Seiten alle relevanten Funktionen des Magento Backends. Des weiteren werden auch sämtliche neuen Features von Magento inklusive dem integrierten CMS mit seinen Widget-Funktionen erläutert..
Weitere Infos zu dem Handbuch finden sich hier:
http://www.techdivision.com/blog/magento-benutzerhandbuch-kostenlos-zum-download/
---
## Magento-Sicherheitslücke - Wichtiges Sicherheitsupdate
Datum: 2012-07-06 · Kategorien: Bugfixes · URL: https://magelounge.de/2012/07/magento-sicherheitsluecke-import-security-update-zend-plattform-vulnerability/
Seit dem 5.7.2012 erhalten alle Shopbetreiber, die sich in Ihren Magento-Shop im Backend anmelden, folgenden Hinweis: "Import Security Update - Zend Plattform Vulnerability".
Eine genaue Erklärung erhalten Sie bei Magento.
Dieser Hinweis betrifft die Magento-Versionen 1.4 bis .1.7 und muss unbedingt eingespielt werden!
Dieser Fehler liegt nicht an Magento selbst, sondern an einem Fehler im eingesetzten Zend Framework. Hier gibt es eine Lücke in der Zend-XMLRPC-Verarbeitung. Dadurch ist es einem Angreifer möglich, beliebige Dateien auf dem Webserver auszulesen. Hierzu gehören natürlich auch die in der local.xml enthaltenen Zugangsdaten zur Datenbank.
Auf der oben erwähnten Seite finden Sie die nötigen Patches:
Community Edition 1.4.0.0 through 1.4.1.1
Community Edition 1.4.2.0
Community Edition 1.5.0.0 through 1.7.0.1
Sie können diesen Patch mit einer einfachen Zeile in der Shell fixen:
wget http://www.magentocommerce.com/downloads/assets/1.7.0.2/CE_1.5.0.0-1.7.0.1.patch && patch -p0 -i MAGE1702 && rm MAGE1702
Noch ein Hinweis von Matthias Zeis an dieser Stelle:
Der Patch funktioniert erst ab PHP 5.2.11. Davor gibt es die benötigte Funktion nicht, es wird dann eine Fehlermeldung "Call to undefined function libxml_disable_entity_loader()" geworfen.
In der frisch veröffentlichen Version 1.7.0.2 ist dieser Bug bereits geschlossen.
Workaround
Falls Sie den Patch nicht sofort umsetzen können, kann man mit diesen Anweisungen die RPC-Funktionen temporär abschalten. Seien Sie jedoch gewarnt, falls Funktionen auf Basis der XMLRPC-API implementiert wurden, werden diese nicht mehr funktionieren.
navigieren Sie auf dem Magento-Webserver zum Root-Verzeichnis, in dem Magento installiert wurde
von hier aus gesehen navigieren Sie nach /app/code/core/Mage/Api/controllers.
öffnen Sie XmlrpcController.php.
löschen Sie den Inhalt der Methode: public indexAction()
speichern Sie die Änderungen.
class Mage_Api_XmlrpcController extends Mage_Api_Controller_Action
{
public function indexAction()
{
/*
$this->_getServer()->init($this, 'xmlrpc')
->run();
*/
}
} // Class Mage_Api_XmlrpcController End
Auf Webguys wird des weiteren beschrieben, wie man da XMLRPC-Modul durch einen Eintrag in der .htaccess abschalten kann.
Brauchen Sie Unterstützung?
Gerne sind wir Ihnen bei der kurzfristigen Behebung des Bugs behilflich. Bitte wenden Sie sich einfach über das Kontaktformular an uns oder rufen Sie unter 05971/80186010 an.
---
## Zend Server CE, xdebug und Magento auf Mac OSX (Snow Leopard) installieren.
Datum: 2011-08-12 · Kategorien: Administration, Magento-Einstieg · URL: https://magelounge.de/2011/08/zend-server-ce-xdebug-und-magento-auf-mac-osx-snow-leopard-installieren/
Viele PHP- und Magento-Entwickler nutzen einen Mac, um mit PHP und Magento zu entwickeln. Ich bevorzuge hierbei den Zend Server Community Edition mit der PHP Version 5.3 sowie zum Debuggen Xdebug.
Zend Server Community Edition gefällt mir deshalb besonders gut, da hier alles wichtig recht nah an der Produktionsumgebung mitgeliefert wird. Hierzu zählen
Apache 2
MySQL
eine zertifizierte PHP Distribution, in meinem Fall PHP 5.3
Zend Framework
Web-basierte PHP Administrator Konsole
phpMyAdmin
und einige Annehmlichkeiten mehr
Zend Server Community Edition Web-Interface
Da Zend Server seinen eigenen Debugger mitbringt, einige jedoch Xdebug bevorzugen, möchte ich hier aufzeigen, wie man diese Kombination zum Laufen bekommt:
Zend Server Community Edition herunterladen und wie üblich installieren
nach der Installation http://localhost:10081 öffnen
"Zend Debugger" abschalten
Herunterladen der xdebug.so. Am besten nimmt man hier die vorkompilierte Version von Komodo, verfügbar unter http://aspn.activestate.com/ASPN/Downloads/Komodo/RemoteDebugging
Das heruntergeladene Archiv entpacken, in das Verzeichnis /5.3/ navigieren und die xdebug.so nach /usr/local/zend/lib/php_extensions kopieren
/usr/local/zend/etc/php.ini öffnen und folgende Zeilen über dem Bereich [zend] einfügen:
zend_extension=/usr/local/zend/lib/php_extensions/xdebug.so
[xdebug]
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_host=”localhost”
xdebug.show_local_vars=On
xdebug.var_display_max_depth=20
xdebug.var_display_max_data=10000
nun den Server mit sudo /usr/local/zend/bin/zendctl.sh restart neu starten
Nun sollte die Arbeit mit Xdebug möglich sein
Für die einzelnen Magento-Projekte lege ich mir jeweils einen virtuellen Eintrag in der /etc/hosts nach diesem Schema an:
127.0.0.1 dev.projekt1.de
127.0.0.1 dev.projekt2.de
127.0.0.1 dev.projekt3.de
Standardmäßig wird der Apache-Webserver auf Port 10088 installiert, so das man jede Domain nach dem Schema www.projekt1.de:10088 aufrufen muss. Mir persönlich gefällt das nicht so gut, so das ich folgende Änderungen in der /usr/local/zend/apache2/conf/httpd.conf vorgenommen habe:
Listen 80
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
Auch die virtuellen Domains werden auf Port 80 gestellt und über die Datei /usr/local/zend/apache2/conf/extra/httpd-vhosts.conf wie folgt angelegt:
NameVirtualHost *:80
Blocktitle $block->title, Block-Identifier: $block->identifier
'; } --- ## Ganz schön ruhig hier -> weiter gehts Datum: 2011-07-23 · Kategorien: Allgemein · URL: https://magelounge.de/2011/07/ganz-schoen-ruhig-hier/ In den letzten Monaten hat sich leider wenig bis gar nichts auf diesen Seite getan. Mit diesem Blogeintrag möchte ich mal einen kleinen Hintergrund hierzu geben und diesen Beitrag gleichzeitig dafür nutzen, hier wieder Leben hinein zu bringen. Gestartet hatte ich magelounge aus meiner Festanstellung heraus als Magento-Entwickler bei der Magento-Agentur Visions New Media. Diese ist jedoch aus diversen Gründen in eine Schieflage geraten (siehe Magento-Agentur Visions sucht Investor für Neustart), so das mich mir selber auch Gedanken über meine weitere Zukunft machte. Da ich bereits seit 1993 als Programmierer unterwegs bin, mich bereits seit 1997 mit PHP beschäftige und schon über 10 Jahre selbständig war, hat mich das Thema Selbständigkeit wieder sehr stark gereizt. Somit habe ich mich zum 2. Februar 2011 primär als Magento-Freelancer selbständig gemacht und konnte vom Start weg an spannenden Projekten mitwirken. Natürlich nimmt eine Existenzgründung sehr viel Zeit in Anspruch, so das aus diesem Grund diese Seiten viel zu kurz kamen. Die Anfangsphase ist nun überwunden, so das ich mich wieder mehr dieser Seite sowie weiteren spannenden Projekten widmen möchte. Zum Glück ist die Investorensuche seitens Visions erfolgreich verlaufen (SinnerSchrader übernimmt die Magento Agentur Visions), so das auch meine Ex-Kollegen gut aufgehoben sind. Falls also mal ein Magento-Freelancer gesucht wird, bin ich für Anfragen immer offen. Primär jedoch gerne in Berlin oder Remote. Mein Profil findet sich bei Xing --- ## Codeschnipsel: Liste aller Bestellungen ausgeben Datum: 2010-11-30 · Kategorien: Codeschnipsel · URL: https://magelounge.de/2010/11/codeschnipsel-liste-aller-bestellungen-ausgeben/ Anbei ein kleines Codeschnipsel, der alle Bestellungen inkl. Filterung nach Datum ausliest und entsprechende Werte zurückgibt. $from = '2010-11-01 00:00:00'; $to = '2010-11-30 23:59:59'; /* @var $orders Mage_Sales_Model_Order */ $orders = Mage::getModel('sales/order') ->getCollection() ->addAttributeToSelect(array('status', 'state')) ->addAttributeToFilter('created_at', array('from' => $from, 'to' => $to, 'datetime' => true) ); echo 'firstname;lastname;email;orderid;orderstatus\n'; foreach ($orders as $order) { $orderId = $order->getId(); $orderStatus = $order->getStatusLabel(); $customerId = $order->getCustomerId(); $customer = Mage::getModel('customer/customer')->load($customerId); $lastname = $customer->getLastname(); $firstname = $customer->getFirstname(); $email = $customer->getEmail(); echo $firstname . ';' . $lastname . ';' . $email . ';' . $orderId . ';' . $orderStatus . '\n'; } ?> --- ## Codeschnipsel: Beziehungen zwischen Simple und Configurable Products Datum: 2010-11-25 · Kategorien: Codeschnipsel · URL: https://magelounge.de/2010/11/codeschnipsel-beziehungen-zwischen-simple-und-configurable-products/ Bei der Arbeit mit Produkten kann es passieren, dass man zu einem Simple-Product wissen möchte, ob es Teil eine Configurable Products ist. Auch der Weg umgekehrt kann vorkommen. Ausgehend vom Configurable Product sollen die Simple Products ermittelt werden. Teil 1: Configurable Product ermitteln $sku = "A1234"; $product = Mage::getModel('catalog/product'); $id = $product->getIdBySku($sku); $product->load($id); $parentProductIds = $product->loadParentProductIds()->getParentProductIds(); var_dump($parentProductIds); array 0 => string '142' (length=3) 1 => string '143' (length=3) Somit hat man an dieser Stelle die Info, das das Simple Product Teil eines Configurables ist. Umgekehrt kann es z.B. auch sinnvoll sein zu schauen, ob das Configurable Product Simple Products hat. Teil 2: Simple Products ermitteln $sku = "A1234"; $product = Mage::getModel('catalog/product'); $id = $product->getIdBySku($sku); $product->load($id); $childProducts = Mage::getModel('catalog/product_type_configurable')->getUsedProducts(null, $product); $activeChildProducts = false; foreach ($childProducts as $child) { $sku = $child->getSku(); $status = $child->getStatus(); if ($child->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED) { $activeChildProducts = true; break; } } if (!$activeChildProducts) { $product->setStatus(Mage_Catalog_Model_Product_Status::STATUS_DISABLED); } $product->save(); In diesem Beispiel werden alle Simple-Products eines Configurable Products ermitteln und per Schleife geprüft, ob diese noch den Status "enabled" besitzen. Falls keines dieser Produkt aktiv ist, wird auch das Hauptprodukt auf "disabled" gesetzt. --- ## Codeschnipsel: URL des Backends ermitteln Datum: 2010-11-20 · Kategorien: Codeschnipsel · URL: https://magelounge.de/2010/11/codeschnipsel-url-des-backends-ermitteln/ Anbei ein sehr einfaches Skript, dass die URL des Backends zurückgibt. Es soll ja Fälle geben, bei denen es nicht unter admin liegt. $url = Mage::getUrl('adminhtml'); echo $url; --- ## Meet Magento #4 - der zweite Tag Datum: 2010-11-07 · Kategorien: Allgemein · URL: https://magelounge.de/2010/11/meet-magento-4-der-zweite-tag/ Hier nun der Bericht über den zweiten Tag der Meet Magento in Leipzig. Einen Bericht über den ersten Tag findet Ihr hier. Der zweite Tag Der zweite Tag began deutlich ruhiger als der erste Tag. Ich denke mal, die Feier und die netten Gespräche am Vorabend in der Moritz-Bastei haben Ihren Tribut gefordert. Zur Eröffnung der Keynote waren nur geschätzte 25% des Vortages anwesend. Dies änderte sich zum Glück im Laufe des Tages. Beim Mittagessen war es wieder ähnlich voll wie am Vortag. Eröffnet wurde der zweite Tag mit der Keynote von Michel Goossens. Er ist als neuer General Manager von Magento für den Aufbau der Geschäfte für EMEA (Europe, Middle East and Africa) zuständig. Als einziger Mitarbeiter wird er in Belgien beginnen, von dort aus sollen die Magento-Community und Partner betreut werden. Er bezeichnete den deutschen Markt als wichtigste Region in Europa. Ich bin gespannt, was sich hier ergeben wird. Eine Pressemitteilung hierzu findet Ihr hier. Da die Themen Payment und Magento-Theming für mich nichts neues waren, habe ich mir als zweiten Vortrag E-Commerce & Abmahnungen von Rolf Albrecht (Kanzlei volke2.0) angehört. Da ich selber 10 Jahre lang Onlineshops betrieben habe, kenne ich diese Thematik leider nur zu gut. Rolf Albrecht führte die fünf häufigsten Abmahngründe auf und zeigte den Zuschauern, wie man auf eine Abmahnung reagieren kann. Da man als Shopbetreiber auch immer ein wenig Jura-Background haben sollte, ist es nicht verkehrt, sich auch immer mit aktuellen Rechtssprechungen auf dem Laufenden zu halten. Das Highlight des Tages war definitiv der Vortrag High Performance Magento - The next Level von Martin Rothenberger (DailyDeal.de). Dieser gab bereits auf der Meet Magento #3 einen Vortrag zur Performance Optimierung. Zum Einstieg sprach er über DailyDeal und deren Entwicklung in den letzten 10 Monaten. Gestartet sind sie mit einem Server und 1,8 Requests pro Sekunde, heute verarbeiten sie bis zu 8 Bestellungen/Sekunde und Page Request/Monat im 9-stelligen Bereich. Martin Rothenberger ging dabei auf die verschiedenen Wege der Performance-Optimierung ein. Als wichtigste Erkenntnis kann man hier festhalten: cachen, cachen, cachen. Magento wird im Prinzip nur noch bei der direkten Verarbeitung der Bestellungen genutzt, der Großteil der Seitenabfragen wird vorher schon von Caches wie Varnish verarbeitet. Interessant ist aber auch, das DailyDeail durchaus überlegt, Magento den Rücken zu kehren und durch eine Eigenentwicklung zu ersetzen. Der Vortrag war wirklich sehr fundiert und ich kann nur empfehlen, sich das Video anzuschauen, wenn es später zur Verfügung gestellt wird. Seine Präsentation findet Ihr auf Prezi. Nach dem (sehr leckeren) Mittagessen hielt dann Andreas von Studnitz einen Vortrag über Multinationale Shops. Dabei erklärte er den Aufbau von Magento in Bezug auf Website, Store und Storeview und wie man diese entsprechend konfiguriert, damit z.B. verschiedenen Preise in verscheidenen Ländern angezeigt werden. Dabei bezog sich der Vortrag leider nur auf die Konfiguration von Magento, aus Entwicklersicht wurde nicht darauf eingegangen, wie z.B. Magento installiert werden, damit anhand internationaler Domains nur auf eine Installation verwiesen werden kann. Wie man soetwas technisch umsetzt, wird im Wiki auf Magento Commerce erläutert. Als letzten Vortrag des Tages habe ich mir dann Performance und Hochverfügbarkeit - (k)ein Widerspruch? von Marc Korthaus (SysEleven GmbH) angeschaut. Dieser Vortrag war von technischer Natur und zielte eher auf die Server-Administratoren. Aber auch hier zeigt sich, dass man mit relativ einfachen Mitteln die Performance seiner Magento-Installation hervorragend optimieren kann. Das Magento als moderne Software nicht bei einem Billig-Hoster mit 200 anderen Domains gehostet werden sollte, scheint sich ja immer noch nicht so ganz herumgesprochen zu haben. Hier die Präsentation bei Slideshare. Barcamps Zu den Barcamps kann ich leider wenig sagen. Scheinbar hätte ich doch mal öfters reinschauen sollen, denn wie ich bei den Webguys lesen konnte, wurden dort gerade für Entwickler sehr interessante Themen besprochen. Fazit des zweiten Tages Der zweite Tag begann etwas ruhiger, viele Teilnehmer wollten wohl noch ausschlafen. Die für mich interessanten Vorträge beschäftigen sich vor allem mit der Anbindung an externe Systeme und der Performance von Magento. Wie schon gestern geschrieben, rücken die einfachen, entwicklerbezogenen Themen für mich in den Hintergrund. Dafür ist es schön, alte Kontakte zu pflegen und neue Kontakte aufzubauen. So gesehen freue ich mich schon auf die Meet Magento #5. Weitere Rückblicke Webguys: Meet Magento 4.10 Tag 2 --- ## Meet Magento #4 - der erste Tag Datum: 2010-11-06 · Kategorien: Allgemein · URL: https://magelounge.de/2010/11/meet-magento-4-der-erste-tag/ In diesem Jahr fand zum vierten Mal die Meet Magento im Technologiezentrum "GaraGe" in Leipzig statt. Diese wurde von Netresearch und Rico Neitzel veranstaltet, unterstützt von zahlreichen Sponsoren. Hier findet Ihr meinen sehr persönlichen Rückblick aus der Sicht eines Magento Entwicklers. Pre Meet Magento Bereits am Vorabend gab es ein kleines Treffen im Spizz, bei dem sich einige Teilnehmer aus dem deutschen IRC-Channel #magento-de traffen. Hier konnte man dann endlich mal die Gesichter hinter Namen wie daim2k5, t-ob-i, therouv, timste und weitere (wieder)treffen. Auch Rico Neitzel, Roman Zenner und Vinai Kopp waren vertreten. Es ergaben sich bereits sehr interessante Gespräche, der Abend hat viel Spass bereitet. 1. Verstaltungstag Eröffnet wurde die Veranstaltung von Thomas Fleck und Rico Neitzel. Diese übergaben dann an Roy Rubin, dem CEO von Magento Inc. In seinem Beitrag führte er auf, warum Magento so erfolgreich ist und was richtig gemacht wurde. Hierbei bezog er sich insbesondere auf die Community, die zu diesem Erfolg beiträgt. Magento wurde bisher 2,5 Millionen mal heruntergeladen (OK, 200 Downloads sind bestimmt von mir), es gibt über 300.000 registrierte Community-Mitglieder sowie über 3.000 Magento-Extensions auf Magento Connect. Als ersten Vortrag der Meet Magento habe ich mir dann Flexible Schnittstellen durch Event-Observer von Rouven Rieker (ITABS) angeschaut. Er führte in den Event-Observer von Magento und dessen Vorteile ein und zeigte anhand von zwei Beispielen, wie dies in eigenen Projekten umgesetzt werden kann. Mir persönlich war das Thema bekannt, allerdings kann ich nur jedem Magento-Einsteiger empfehlen, sich mit diesem Thema zu beschäftigen. Der Einsatz von Event-Observern sollte immer einem Überschreiben des Moduls durch vorgezogen werden. Die Vorteile überwiegen eindeutig. Die Präsentation selbst findet Ihr auf Slideshare, die Liste der Event/Observer sowie die Beispiel-Quelltexte gibt es hier. Als zweiten Entwicklerbeitrag zeigte mein Kollege Sebastian Heuer (Visions new media GmbH) mit Beyond "I Like" - Facebook Graph API in Magento nutzen, wie man sich die Facebook Graph API zu nutzen machen kann. Er gab einen Überblick über die Dokumation seitens Facebook, die bereits fertig nutzbaren Social Plugins sowie die Nutzung der Graph API. In seinem Beispielcode zeigte er, wie die API in Magento eingebunden werden kann. Dadurch ist dann z.B. ein direkter Login per Facebook möglich. Die Links zu seinen Folien und zum Quelltext findet Ihr in seinem Blog. Video auf YouTube ansehen (öffnet youtube.com) Nach dem hervorragenden Mittagessen fanden die Barcamps statt. Als erstes führte Sebastian Heuer seinen Facebook-Vortrag weiter, da sein eigentlicher Vortrag doch sehr ausführlich gehalten wurde und keine Zeit mehr für eine Frage/Antwort-Runde bliebt. Danach folgte ein Beitrag von Damian Luzczymak über die Suche mit Magento + Solr. Da Damian bereits auf der Meet Magento #3 und auf dem Magento-Stammtisch in Bielefeld etwas darüber erzählt hatte, habe ich mich dann an dieser Stelle bei den Barcamps ausgeklinkt, da auch die weiteren Themen nicht so sehr interessant für mich waren. Der nächste Beitrag, den ich mir angeschaut habe, wurde von Roman Zenner über das Thema Mobile Commerce gehalten. Roman relativierte die doch sehr optimistischen Prognosen und zeigte anhand von einigen Beispielen, wie Magento mit seiner mobilen iOS-Applikation an das Thema herangegangen ist. Es fällt dabei sehr stark auf, dass sich die Anwendungen optisch alle sehr ähneln und das Potential der Geräte nicht wirklich ausnutzt. Ich selber beschäftige mich bereits seit 1997 mit mobilen Geräten und höre bereits seit dem Jahr 2000 euphorische Beiträge zum Theme mCommerce/Mobile Commerce. Getan hat sich außer dem Verkauf von Klingelton-Abos in diesem Bereich in den letzten 10 Jahren allerdings nur sehr wenig. Deshalb gehöre ich an dieser Stelle zu den Skeptiker und denke, das normale Shops in Deutschland vor 2012 nur sehr wenig vom Mobile Commerce merken werden. Die Präsentation findet Ihr bei Slideshare. Video auf YouTube ansehen (öffnet youtube.com) Danach stellte Lee Saferite in seinem Vortrag Magento Security das Thema Sicherheit in den Mittelpunkt. Dies war der erste Vortrag von Lee vor solch einer Kulisse, er war sehr nervös, hat das ganze jedoch sehr gut gemeistert, wie ich finde. Wie Lee auf der Aftershowparty erzählte, scheint der Livestream genau in diesem Augenblick ausgefallen zu sein, so daß seine Frau nicht zuschauen konnte. Hoffentlich wird es zu einem späteren Zeitpunkt ein Video geben, der Vortrag ist sehr empfehlenswert. Lee zeigte auf, wie Magento mit Updates und der Sicherheitsthematik umgeht und sensibilisierte vor allem die Zuschauer, sich auch selbst dieses Thema bewusst zu werden. Einige der Punkte in Lee´s Vortrag: Wem gebe ich Zugangsdaten für meinen Server? Wie kontrolliere ich, was derjenige auf diesem Server gemacht hat? Wie kontrolliere ich Änderungen, die von dritten an Quelltext und Server vorgenommen wurde? Sollte man wirklich blind Extensions von Magento Connect installieren, ohne zu wissen, was im Quelltext steht? Wie kontrolliert man die Qualität von Magento Extensions? Woher weiss man, was quelltextverschlüsselte Extensions (z.B. mit Ioncube) mit den Daten im Shop anstellen? Zum Abschluß präsentierte Lee Saferite noch einen Bug, der bis zur Version 1.3 im Paypal-Modul besteht. Hierbei kann man den Status einer Bestellung ändern, sobald man die OrderId und die Gesamtsumme der Bestellung kennt. Auch wenn man das Paypal-Modul nicht nutzt, kann der Status einer Bestellung per Vorkasse oder ähnlich auf z.B. "bezahlt" geändert werden. Da große Shops teilweise sehr automatisiert arbeiten, kann das im weiteren Workflow z.B. die Weitergabe der Bestellung an den Fullfilment-Anbieter auslösen. Wenn der Fehler dann in der Buchhaltung auffällt, ist es meist längst zu spät. Magento hat diesen Bug trotz Kenntnis nie behoben, so das Lee ein Bugfix auf Github bereitgestellt hat. In der Version 1.4 wurde das Paypal-Modul neu geschrieben, so daß dieser Bug hier nicht mehr auftritt. Danach habe ich mir den eher businessorientieren Vortrag Affiliate-Marketing von Dr. Erwin Lammenett (Team in Medias) angeschaut, der die Vor- und Nachteile von eigenen Affiliate-Programmen im Vergleich zu Affiliate-Partnern wie affili.net oder Zanox darstellte. Team in Medias hat hierzu ein eigenes Modul entwickelt, das es einem Shopbetreiber sehr einfach ermöglicht, ein eigenes Affiliate-Programm aufzusetzen. Dieses ist auf jeden Fall eine interessante Möglichkeit, mehr Besucher in seinen Onlineshop zu leiten, da dieses Modul im Gegensatz zu den Affiliate-Parnterprogrammen auch aus SEO-Sicht Backlinks auf den eigenen Shop bringt. Als letzten Vortrag des Tages Mavento - Magento Entwicklung und Deployment mit Maven/Ant zeigte Erik Dannenberg (Bloopark Systems) auf, wie sie in ihrem Unternehmen Maven und Ant für Continuous Integration einsetzen. Dabei wurde anhand eines Beispiel-Projektes aufgeführt, wie die Projektstruktur und die lokale Testumgebung eingerichtet wurde. Aber auch Themen wie Unit Tests, Dokumentation und automatisierte Deployments werden durch den Einsatz von Maven/Ant vereinfacht. Als Keynote am Ende des Tages zeigte Björn Schotte (mayflower) Die disruptiven Kraft von Open Source im E-Commerce auf. Hierbei zeigte er auf, welche Kräfte durch Open Source freigesetzt werden und wie gerade Shopbetreiber hiervon profitieren können. Open Source hat nicht nur Systeme wie Linux, MySQL und PHP hervorgebracht, sondern auch bei den Content Management-Systemen den Markt aufgebrochen und Lösungen wie TYPO3, Drupal, Joomla und Wordpress hervorgebracht. Und auch im Bereich E-Commerce kommt nun durch Lösungen wie Magento und oxid eSales Bewegung in dieses Marktsegment. Zum Abschluß des Tages ging es zur Aftershowparty in die Moritzbastei. Leider hat es in der eigentlichen Location am Vortag gebrannt, so daß auf einen anderen Teil des Gebäudes ausgewichen wurde. Interessanterweise war die Überraschung des Abend eine Feuerspuckerin, die Ihren Auftritt jedoch im Innenhof durchführte. Das Essen war wieder hervorragend, die Getränke wurden diesmal freundlicherweise von einem Sponsor gestiftet. Im Laufe des Abends ergaben sich sehr viele interessante Gespräche. Man traff alte Bekannte aus der Szene wieder und konnte viele neue Kontakte knüpfen. Fazit des ersten Tages Die Meet Magento #4 konnte wieder einen neuen Besucherrekord aufweisen. Die Themen des Tages waren sehr interessant und man konnte die Pausen zum Netzwerken nutzen und viele interessante Gespräche führen. Die allgemeinen Entwickler-Themen sind für mich persönlich nicht mehr so spannend, denn mittlerweile gibt es doch ausreichend Quellen und Literatur, um einem den Einstieg in Magento zu ermöglichen. Meine Highlights dieses Tages waren für mich der Security-Vortrag von Lee Saferite und der Facebook-Vortrag von Sebastian Heuer. Und wie war der zweite Tag? Weitere Rückblicke: webguys.de openstream.ch Roman Zenner projecter.de exitingcommerce.de handelskraft.de --- ## Produkte schneller speichern mit addAttributeUpdate() Datum: 2010-10-22 · Kategorien: Codeschnipsel · URL: https://magelounge.de/2010/10/produkte-schneller-speichern-mit-addattributeupdate/ Das Speichern von Produkten in Magento ist immer eine zeitkritische Herausforderung. Gerade in Importskripten und bei Massenupdates geht hier wertvolle Zeit verloren. Hier findet Ihr einen Ansatz, mit dem man sehr schnell mit den Magento-eigenen Methoden Daten speichern kann. Erstmal der übliche Weg: $sku = '123'; $storeId = 0; $id = $product->getIdBySku($sku); $product->setStoreId($storeId); $product->load($id); $product->setStatus(Mage_Catalog_Model_Product_Status::STATUS_DISABLED); $product->save(); Hierbei wird jedoch durch $product->save() ein großer Overhead mitgeschleppt. Wenn man nur sehr wenige Attribute ändern möchte, geht dies deutlich schneller: $sku = '123'; $storeId = 0; $id = $product->getIdBySku($sku); $product->load($id); $product->addAttributeUpdate('status',Mage_Catalog_Model_Product_Status::STATUS_DISABLED,$storeId); Eigenen Benchmarks auf meiner lokalen Entwicklungsumgebung (Zend Server CE auf Macbook Pro, Cache deaktiviert, 3 Storeviews) haben gezeigt, dass einfache Änderungen in dieser Art ca. 50x schneller gespeichert werden. 100 Änderungen werden jetzt nicht mehr in 200 Sekunden gespeichert, sondern in 3-4 Sekunden. --- ## Links der Woche KW 42 Datum: 2010-10-21 · Kategorien: Links der Woche · URL: https://magelounge.de/2010/10/links-der-woche-kw-42/ Die Linktipps in dieser Woche falllen etwas kürzer aus. Inchoo zeigt, wie man individuelle Schriftarten verwendet. Es ist ein Update für das Market Ready Germany-Modul erschienen und Kai Köpke zeigt, wie man genau aus diesem die Gewichts- und Versandkostenlinks entfernt. Custom typography in Magento – @font-face In diesem Artikel erklärt Inchoo, wie man individuelle Schriftarten in seinem Magento-Shop nutzt, um diesen ein wenig von der Menge abzuheben. Market Ready Germany update Eine der in Deutschland meistgenutzten Erweiterungen ist das Market Ready Germany Modul von symmetrics und Trusted Shops. Es hat ein Update auf die Version 1.4.1.1 erfahren, in der viele Fehler beseitigt wurden. Market Ready Germany, Gewicht und Versandkostenlink entfernen Nicht immer benötigt man alle Features des Market Ready Germany Moduls. Kai Köpke zeigt in seinem Blog, wie man z.B. die Nutzung des Gewichts und die Verlinkung zu den entsprechenden Versankosten wieder abschalten kann. --- ## Codeschipsel: Alle Adressen eines Kunden ermitteln Datum: 2010-10-15 · Kategorien: Codeschnipsel · URL: https://magelounge.de/2010/10/codeschipsel-alle-adressen-eines-kunden-ermitteln/ Anbei ein kurzes Codeschnipsel, mit dem alle Adressen eines bestimmten Kunden ermittelt werden: $websiteId = Mage::app()->getWebsite()->getId(); $store = Mage::app()->getStore(); $customer = Mage::getModel("customer/customer"); /* @var $customer Mage_Customer_Model_Customer */ $customer->website_id = $websiteId; $customer->setStore($store); $customer->loadByEmail("hans@mustermann.de"); var_dump($customer); $addresses = Mage::getModel("Customer/Entity_Address_Collection"); $addresses->setCustomerFilter($customer); $addresses->load(); foreach($addresses as $address): $address->load($address->entity_id); /* @var $address Mage_Customer_Model_Address */ var_dump($address); endforeach; --- ## Magento-Links der Woche KW41 Datum: 2010-10-14 · Kategorien: Links der Woche · URL: https://magelounge.de/2010/10/magento-links-der-woche-kw41/ Als Magento-Entwickler verfolgt man selbstverständlich Blogs, Foren und Twitter Hier werden wir jetzt jede Woche einen kleinen Überblick an interessanten Links weitergeben. Magento – Neuen Orderstatus anlegen Hier wird kurz erklärt, wie man einen neuen Orderstatus in Magento anlegt. Allerdings werden in dem Beispiel Core-Dateien überschrieben. Hier sollte man das ganze doch in ein eigenes Modul auslagern, damit man beim nächsten Magento-Update die Änderungen nicht nachpflegen muss. Lesson 4: Official Documentation Guido Jansen gibt einen Überblick über die Quellen, die ein Magento-Entwickler zur Informationsbeschaffung anzapfen kann: Offizielle Dokumentation, Bücher, Screencasts und Webinare 3262 Magento Sites in the Alexa Top 1 Million Tom Robertshaw hat 1 Million-Seiten aus den Alexa Top 1 Million verglichen und dabei 3262 Magento-Shops ermittelt. Interessant sind hier die Statistiken im Vergleich von Magento zu osCommerce sowie die Länderverteilung. Wir sind schon jetzt auf die nächste Version gespannt, in der erste Tendenzen erkennbar sein könnten. Magento Extension Clashes – Winners and Loosers Eine interessante Analyse, wann Magento in welcher Reihenfolge Module lädt und wann welches Modul gewinnt. Besonders die Kommentare sind beachtenswert, denn dort erklärt Vinai Kopp, wie mittels in der XML andere Module zwangsweise zuerst geladen werden. Definitive Guide On Magento Registry Ein Überblick über die Magento Registry, wie Daten gespeichert und wieder abgerufen werden. Ten Tips for Keeping your Magento Store Secure Magento ist von Haus aus bereits ein sehr sicheres System. Hier findet man eine Liste mit 10 Tipps, die dafür sorgen, dass der eigene Magento-Shop auch weiterhin sicher bleibt. Top-Links von Magento anpassen Das flexible Layout-System von Magento lässt machen Einsteiger verzeifeln oder aber er ändert die Daten in den Core-Dateien, um überhaupt ein Ergebnis zu erzielen. Matthias Zeis erklärt hier sehr ausführlich, wie man als Entwickler vorgehen kann. Magento Checkout ohne Javascript und Ajax Der OnePage-Checkout von Magento hat schon viele Entwickler zur Verzweiflung gebracht. Bei Webguys findet man eine Lösung, die auf Javascript und Ajax verzichtet. Der Code wird direkt als Download zur Verfügung gestellt. --- ## Magento-Backups erstellen und schneller importieren Datum: 2010-10-07 · Kategorien: Administration · URL: https://magelounge.de/2010/10/magento-backups-erstellen-und-schneller-importieren/ Datensicherung und -wiederherstellung sind ein wichtiges Thema für jeden Magento-Entwickler und Shopbetreiber. Allerdings gibt es auch hier einige Fallstricke, die man durchaus beachten sollte, damit man im Falle des Falles schnell reagieren kann. Sei es, um als Shopbetreiber ein Backup zurückzuspielen, nachdem man aus Versehen 100 Produkte gelöscht hat oder als Entwickler, um die Datenbank zu Entwicklungszwecken auf seinen Development-Server zu kopieren. Ein Datenbank-Backup kann je nach Größe des Shops schonmal mehrere Gigabyte groß sein. Aktuelles Beispiel: 12 GB Dump mit ca. 100.000.000 Datensätzen, davon 80.000.000 in log_url und log_url_info, da im Shop die Log-Dateien nicht per Cron gepflegt wurden. Während der Dump per Console und mysqldump noch sehr schnell durchgeführt wird, dauert der Import solcher Dateien doch recht lange. MySQL ist als Datenbank sehr schnell im Lesen von Daten, beim Schreiben dauert das naturgemäß deutlich länger. Und gerade hier kann man ansetzen, indem man den generierten Dump entsprechend erstellt. Wichtig sind für MySQL folgende Befehle: SET @OLD_AUTOCOMMIT=@@AUTOCOMMMIT, AUTOCOMMIT=0; SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT; SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS; SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION; SET NAMES utf8; SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'; SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0; Durch das Deaktivieren der Überprüfung auf Unique-Keys und Foreign Keys kann der Import dann um einiges schneller durchgeführt werden. Da der Autocommit deaktiviert wurde, muss am Ende der SQL-Befehle ein manueller Commit eingefügt werden. COMMIT; Hier das ganze als Shell-Befehl für die Bash #!/bin/bash echo "SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT; SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS; SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION; SET NAMES utf8; SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'; SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0; SET foreign_key_checks=0;" > magento_backup.sql mysqldump -umeinbenutzer -pmeinpasswort --single-transaction meinedatenbank >> magento_backup.sql echo "COMMIT;" >> magento_backup.sql echo "SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT; SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS; SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION; SET SQL_NOTES=@OLD_SQL_NOTES;" >> magento_backup.sql Damit haben wir dann ein Backup erstellt, das sofort die oberen SET-Befehle enthält, den kompletten Dump sowie den abschließenden Commit-Befehl. Danach werden die Ausgangswerte wieder hergestellt. Der Import des Backups kann dann wie folgt über die Shell vorgenommen werden: mysql -umeinbenutzer -pmeinpasswort meinedatenbank\n";
foreach ($collection as $attribute) {
echo $attribute['attribute_code'] . "\n";
$collection = Mage::getResourceModel('eav/entity_attribute_collection')
->setEntityTypeFilter($product->getResource()->getTypeId())
->addFieldToFilter('attribute_code', $attribute['attribute_code']);
$_attribute = $collection->getFirstItem()->setEntity($product->getResource());
$attribute_options = $_attribute->getSource()->getAllOptions(false);
if ($attribute_options) {
foreach ($attribute_options as $option) {
if ($option['label']) {
echo "\t" . $option['label'] . "\n";
}
}
}
}
echo "\n";
---
## Codeschnipsel: Zwischensumme und Versandkosten ermitteln
Datum: 2010-10-05 · Kategorien: Codeschnipsel · URL: https://magelounge.de/2010/10/codeschnipsel-zwischensumme-und-versandkosten-ermitteln/
Mit diesem Code erhält man die Zwischensumme und die Versandkosten einer Bestellung:
$order = Mage::registry('current_order');
$zwischensumme = $order->getSubtotal();
$versandkosten = $order->getBaseShippingAmount();
---
## Codeschnipsel: Preis von einer Währung zur anderen konvertieren
Datum: 2010-10-05 · Kategorien: Codeschnipsel · URL: https://magelounge.de/2010/10/codeschnipsel-preis-von-einer-wahrung-zur-anderen-konvertieren/
Hiermit kann ein Preis von einer Währung in eine andere konvertiert werden. Hierfür müssen die Währungen eingerichtet und heruntergeladen worden sein.
$fromCurrency = 'EUR'; // Währung, von der konvertiert werden soll
$toCurrency = 'USD'; // Zielwährung, zu der konvertiert werden soll
$convertedFinalPrice = round(Mage::helper('directory')->currencyConvert($tax->getPrice($product, $product->getFinalPrice(), false), $fromCurrency, $toCurrency), 2);
---
## 4. Ausgabe des eStrategy-Magzin erschienen
Datum: 2010-10-01 · Kategorien: Allgemein · URL: https://magelounge.de/2010/10/4-ausgabe-des-estrategy-magzin-erschienen/
Seit heute, dem 1.10.2010 steht eine neue Ausgabe des eStrategy-Magazins zum kostenlosen Download zur Verfügung. Diese Ausgabe umfasst mal wieder über 100 Seiten an interessanten Informationen rund um das Thema eCommerce.
Hier ein Überblick der einzelnen Themen:
eCommerce
• Meet Magento #4
• Die besten Magento Extensions - Teil 4
• Wie Social Media das Image von Online-Händlern beeinflusst
• Mobile Commerce - Status Quo & Ausblick
• Mobile Internet-Nutzer hautnah - Wer sie sind und was sie wollen
• Interview mit Jochen Krisch: Regeln und Trends im eCommerce
• Bonusprogramme für Shopbetreiber
• Konsumenten im eCommerce ganzheitlich erreichen
• Die Produktsuche in Online-Shops
Recht
• Aktuelle Urteile und Gesetzesänderungen rund um den eCommerce
• AGB im Onlineshop - Fallstricke und Lösungsansätze
• Open Source Software - Das sollten sie aus rechtlicher Sicht wissen!
Online-Marketing
• Schnelleinstieg ins Affiliate-Marketing
• Mit Fotos den Online-Umsatz steigern
• Gütesiegel für Online-Shops - Ein Marktüberblick
• 10 Fehler, die den Online Handel gefährden können
Web
• Ausflugsziel Internet: Die virtuelle Reise des Users
• Das Web verändert die Welt - Visionären Unternehmen gehört die Zukunft
Link:
http://www.estrategy-magazin.de/
---
## 37 Punkte-Checkliste für den Magento Golive
Datum: 2010-09-27 · Kategorien: Allgemein, Voraussetzungen · URL: https://magelounge.de/2010/09/37-punkte-checkliste-fuer-den-magento-golive/
Diese Liste ist eine freie Übersetzung von 37 Point Magento Pre-Launch Checklist von Tom Robertshaw, der uns freundlicherweise die Übersetzung ermöglicht hat. Hierbei setzten wir bei der Nennung der Menüeinträge die Verwendung des deutschen Sprachpaketes voraus.
Eine Onlineshop online zu stellen ist für jeden Softwareentwickler stressvoll. Der Kunde macht Druck, so schnell wie möglich online zu gehen. Dieser Druck kann dazu führen, dass man schon mal einen wichtigen Punkt zum Go-Live vergisst. Hier finden Sie eine Liste, die man berücksichtigen sollte, bevor man einen Magento-Shop vom Entwicklungs- in den Produktionsmodus überführt.
1. Base URLs
2. Favicon
3. HTML Head
4. Platzhalter-Bilder
5. Kontakt-Informationen
6. Transaktions-Emails
7. Klartext-Passwörter in Emails sind böse
8. Admin-URL ändern
9. Logo für Rechnungen und Packlisten
10. Steuer-Einstellungen
11. Länder-Herkunft bei Versandkosten
12. 404-Seite
13. Testdaten löschen
14. Produktbestand
15. Javascript auf eine Datei reduzieren
16. CSS verkleinern
17. CSS auf eine Datei reduzieren
18. maintenance.flag (Wartungsmodus)
19. Design der Fehlerseite
20. Index-Verwaltung
21. Caching
22. System Compilation
23. Google Analytics
24. Google Base
25. Google Sitemap
26. Newsletter-Anmeldungen
27. Versand-Methoden
28. Schnittstellen zu Zahlungsanbietern
29. SSL-Zertifikat
30. Modul-Lizenzen
31. PHP-Konfiguration
32. Cronjobs einschalten
33. Log-Dateien leeren
34. Unnötige Module abschalten
35. Strategie für Datenbanksicherung und -wiederherstellung
36. "Das Web sollte schnell sein"
37. Seien Sie gewappnet
1. Base URLs
Die Base URLs werden in der Datenbank in der Tabelle core_config_data in den Feldern web/unsecure/base_url sowie web/secure/base_url gespeichert, können aber auch über das Admin-Interface verwaltet werden, wenn man Zugriff darauf hat: System → Konfiguration → Allgemein → Web → Ungesichert (bzw. Sicher). Wenn man die Seite auf eine andere Domain oder ähnlich verschiebt, so müssen diese aktualisiert werden, ansonsten würde alle Links zurück zum Entwicklungssystem verlinken. P.S.: nicht den abschließenden Schrägstrich vergessen.
2. Favicon
Magento ist manchmal ein hartes Stück Arbeit. Allerdings sollten Sie trotzdem nicht vergessen, ein passendes Favicion zu erstellen.
3. HTML Kopfzeilen
Lassen Sie nicht die Original-Einstellungen im HTML-Kopf. Sie sollten den Titel, die Meta Discription wie auch die Meta Keywords anpassen. Diese sind wichtig für die Suchmaschinen-Optimierung (SEO). System → Konfiguration → Allgemein → Gestaltung → HTML-Kopf.
4. Platzhalter-Bilder
Das sind die Bilder, die angezeigt werden, wenn das Produkt kein eigenes Bild hat. Gestalten Sie Ihr eigenes Set an Bilder und laden Sie diese nach catalog/products/placeholder/image.jpg, catalog/products/placeholder/small_image.jpg und catalog/products/placeholder/thumbnail.jpg. Alternativ können diese auch im Admin-Bereich hochgeladen werden: System → Konfiguration → Allgemein → Gestaltung → Produktbild-Wasserzeichen.
5. Kontakt-Informationen
Vergewissern Sie sich, dass alle Kontakt-Informationen und Email-Adressen richtig gesetzt sind. Sie finden diese in System → Konfiguration → Allgemein → Store Email Addresseb.
6. Transaktions-Emails
Transaktions-Emails verwenden statt dem Standard-Logo ein separates Logo. Stellen Sie sicher, das das Bild, das Sie verwenden möchten, in das Theme Verzeichnis als logo_email.gif gespeichert wird.
Die meisten Emails werden aufgrund der bereits eingerichteten Konfiguration sortiert. Es gibt jedoch eine Reihe von Vorlagen, die auch noch in der Version 1.4.1.1 hart codierte Werte verwenden, so das es notwendig ist, diese zu bearbeiten und die Änderungen manuell durchzuführen. Um Zeit zu sparen, hier die E-Mail-Vorlagen, die betroffen sind:
Newsletter subscription confirmation – “Demo Store”
New account confirmation key – “Demo Store”
New password – “Demo Store”
Share Wishlist – “Demo Store”
New Order – “PST”
7. Klartext-Passwörter in Emails sind böse
Es bereitet wirklich Bauchschmerzen, wenn Websiten Klartext-Passwörter in E-Mails versenden. Leider gehört auch Magento dazu, wenn man sich für ein Konto registriert. Eine Empfehlung ist es, die Transaction-Email für die Kontoregistrierung zu bearbeiten und das Passwort durch einen Platzhalter wie ********** zu ersetzen.
8. Admin-URL ändern
Aus Sicherheitsgründen sollte die URL zum Admin-Backend angepasst werden. Dieses geschieht unter System → Konfiguration → Erweitert → Admin → Admin Base URL.
9. Logo für Rechnungen und Packlisten
Hier wird das Logo hochgeladen, dass für Rechnungen und Packlisten verwendet wird. Alternativ kann die Datei logo_email.gif in den images-Ordner des Skin-Verzeichnisses hochgeladen werden. Hier gibt es auch einige weitere Einstellungen, die man in diesem Zusammenhang beachten sollte.
10. Steuer-Einstellungen
Die Steuer-Einstellungen sollten bereits eingerichtet sein. Es ist jedoch nicht verkehrt, diese noch einmal zu kontrollieren, damit man nicht etwas übersehen hat. Diese finden sich unter System → Configuration → Sales → Tax and also Sales → Tax.
11. Länder-Herkunft bei Versandkosten
Im direkten Bezug zu den Steuer-Einstellungen sollte die Länder-Herkunft korrekt gesetzt werden, damit die Steuern richtig berechnet werden können.
12. 404-Seite
Dieser Seite wird bei der Entwicklung häufig wenig Beachtung geschenkt. Denken Sie daran, diese zu testen. Diese Seite sollte entsprechend angepasst werden und nicht den Standard-Block anzeigen.
Bitte beachten sie auch, das die Standard-404-Seite, die unter CMS → Pages zu finden ist, einen Link zum "Magento Store" enthält.
13. Testdaten löschen
Entfernen Sie alle Produkte, Bestellungen und Kunden, die Sie während der Entwicklung angelegt haben.
14. Produktbestand
Wenn Sie anfangs Produkte importieren und anlegen, dann werden Sie normalerweise nicht auf den Lagerbestand achten. Dies ist bei der Magento-Entwicklung ein unnötiger Aufwand. Bevor der Shop jedoch onine geht, klären Sie mit dem Kunden, wie mit dem Bestand umgegangen werden soll, damit der Shop den korrekten Bestand anzeigt.
15. JavaScript auf eine Datei reduzieren
Eine wesentliche Maßnahme, um Ladezeiten zu reduzieren, ist die Begrenzung der Anzahl an HTTP-Requests, die bei jedem Seitenaufruf durchgeführt werden. Magento-Shops laden häufig viele JavaScript-Dateien, Sie können diese jedoch limitieren, wenn Sie diese auf eine Datei reduzieren: System → Konfiguration → Developer → Einstellungen JavaScript.
Sollten Sie Inline-JavaScript bei der Entwicklung genutzt haben, sollten Sie diesen in eine eigene Datei auslagern, um jede unnötige Verlangsamung der Ladezeiten zu vermeiden.
16. CSS verkleinern
Benutzen Sie einen CSS-Kompressor. Speichern Sie zwei Versionen der CSS-Datei, eine in lesbarer Form, z.B. styles.css.orig sowie eine verkleinerte Version als styles.css.
17. CSS auf eine Datei reduzieren
Hierbei handelt es sich um die gleiche Idee wie bei der Reduzierung der Javascript-Dateien. Seien Sie jedoch vorsichtig, es handelt sich hierbei noch um ein experimentelles Feature. Man sollte dies vorher auf einem Staging-Server ausprobieren, um festzustellen, ob es irgendwelche Seiteneffekte gibt. Sie finden diese Einstellung unter System → Configuration → Developer → CSS Settings.
Eine sinnvolle Erweiterung auf Magento Connect nennt sich Fooman Speedster. Diese kombiniert, reduziert und komprimiert alle JavaScript und CSS-Dateien.
18. maintenance.flag (Wartungsmodus)
Erstellen Sie die Datei maintenance.flag im Root-Verzeichnis Ihrer Magento-Installation und Ihren Kunden wird angezeigt, dass Ihre Website sich im Wartungsmodus befindet (Error 503: Service temporarily unavailable) . Das ist besonders dann sinnvoll, wenn Sie einen langsamen Übertragungsmodus wie FTP verwenden. Laden Sie zuerst diese Datei hoch, dann den Rest. Somit
19. Design der Fehlerseiten
Wenn Ihr Magento-Shop einen Fehler ausgibt oder sich im Wartungsmodus befindet (maintenance.flag), wird ein anderes Theme benutzt, um die Fehlermeldung auszugeben. Wird dieses nicht angepasst, so wird Ihrem Kunden das Magento-Logo und das Standard-Theme angezeigt. Um diese Seite dem eigenen Layout anzupassen, müssen Sie die Dateien im Verzeichns errors bearbeiten.
Sicherlich möchten Sie nicht, dass die Fehlerseite den Stacktrace ausgibt. Um dies abzuschalten, öffnen Sie errors/local.xml (falls diese nicht vorhanden ist, kopieren Sie die Beispieldatei local.xml.sample nach local.xml) , dann ändern Sie die action von