13.12.2012
Im Magento Backend gibt es die Möglichkeit für eigene Module auch einen Grid hinzuzufügen, welcher sich perfekt in das System eingliedert. Falls bei dem Grid dann allerdings die Paginierung nicht funktioniert, liest es oft an dem gleichen Problem: Die Collection wird in der setCollection Methode bereits via load() geladen. So sollte es aussehen: protected function _prepareCollection() { $collection = Mage::getModel('supplier/supplier')->getCollection()->addFieldToSelect('*'); $this->setCollection($collection); return parent::_prepareCollection(); } Fehlerhaft: protected function _prepareCollection() { $collection = Mage::getModel('supplier/supplier')->getCollection()->addFieldToSelect('*')->load(); $this->setCollection($collection); return parent::_prepareCollection(); }...
07.11.2012
Plötzlich ist der Magento Online Shop nicht mehr erreichbar und es wird einem nur noch die Fehlermeldung angezeigt? Der Fehler ist, im Vergleich zu vielen anderen Magento Fehlern, sehr aussagekräftig: durch den MySQL Servers wurde dem Shop der Schreibvorgang verwehrt. Bei vielen Webhostern liegt das daran, dass die Größe der MySQL Datenbanken gedeckelt ist. Bei 1&1 zum Beispiel (in diesem konkreten Paket) auf 100MB. Durch die Log-Tabellen, die Magento befüllt, sind diese 100MB schnell aufgebraucht. Am besten sichert man daher die entscheidenden Tabellen zuvor und leert dann die Tabellen. Hierzu benutzt man folgendes MySQL Query:...
28.06.2012
Auch wenn man den Title in Magento natürlich eigentlich nur sauber über einen Controller verändern sollte, so gibt es doch Situationen, wo es einfach bequemer und sinnvoller ist, den Title über JavaScript im Template zu ändern. Beispielsweise auch, falls man den Title nur durch User-Interaktion verändern möchte. Damit der Title trotzdem noch den Prefix und Suffix von Magento enthält, muss man diese Variablen mit getStoreConfig abrufen und ebenso einbinden. Bei diesem Beispiel wird der Title durch den Standard Title von Magento ersetzt mit der Variable $newTitle zwischen Prefix und Suffix....
27.06.2012
Es gibt viele Situationen, wo der Magneto Cache geleert werden muss. Ein gutes Beispiel ist vor oder nach dem Einspielen von Produktdaten in Magento. Durch das leeren des Caches vor dem Import kann man teilweise deutlich höhere Durchsatzraten erzielen. Aber auch nach dem Import macht es Sinn, den HTML-Cache zu leeren. Man kann den Magento Cache sowohl per PHP als auch per FTP / Shell leeren. Magento Cache per PHP leeren Um gleich nach dem Import Vorgang den Cache zu leeren, kann man folgenden Code verwenden. Natürlich kann man per php auch den Image Cache leeren. Dadurch werden alle Thumbnails der Produktbilder gelöscht und beim ersten Aufruf neu erstellt. Wenn man beispielsweise Bilder per FTP austauscht, können so die neuen Thumbnails generiert werden. Magento Cache per FTP oder Shell leeren Den Magento Cache per FTP oder Shell zu leeren klappt nicht bei jeder Magento Installation. Durch den modularen Aufbau von Magento kann der Filecache leicht durch einen Redis oder Memcache Cache ersetzt werden. Falls der Magento Filecache benutzt wird, funktioniert allerdings auch das löschen des Magento Caches per FTP oder Shell einwandfrei. Hierzu wechselt man in das Verzeichnis var/cache/ und löscht alle Unterordner inklusive der jeweiligen Inhalte. In der Linux Shell funktioniert es noch etwas schneller. Einfach im Magento Hauptverzeichnis folgenden Befehl ausführen:...
27.06.2012
Um einen Couponcode nachträglich von einer Bestellung zu entfernen, kann man folgendes MySQL Query ausführen: Hierbei muss nur noch die entity_id in der WHERE Bedingung auf die jeweilige OrderId angepasst...
10.05.2012
Während der Entwicklung eines Magento Shops werden zwangsläufig einige Testbestellungen gemacht. Damit der Shop bei der Übergabe aber nicht bereits Bestellungen vorweist, sollte man davor die Bestellungen entfernen und die Auto Increment Ids auf 1 setzen. Das geht bei Magento 1.5 nur mit SQL Queries und nicht durch das Löschen der Kunden im Backend. Mit dem unten angehängten SQL Query werden die Kunden und Bestellungen aus einem Magento 1.5.x Shop entfernt und die auto_increment Ids wieder auf 1 gesetzt....
10.04.2012
Falls man beim Import von Produkten mit mehreren Storeviews arbeitet, kann es vorkommen dass ungewünscht default Werte überschrieben werden. Auch soll es schon vorgekommen sein, dass Mitarbeiter nicht richtig angelernt waren und daher nicht die Standardwerte bearbeitet haben. Da Magento hier keine Möglichkeit bietet, einfach gegenüberzustellen wo Standardeinstellungen überschrieben werden, muss man hier direkt mit der SQL Datenbank arbeiten. Um alle Produkteinstellungen anzuzeigen, welche nicht von den default Werten übernommen werden, werden folgende Querys benutzt: Anschließend sollte man die Ergebnisse der Querys nochmal durchgehen und sich anschauen, ob nicht doch der ein oder andere Eintrag mit Absicht gesetzt worden ist. Falls nicht, kann man alle custom Daten mit folgenden Querys löschen: Zu bemerken wäre noch, dass hierbei allerdings nur Produkteinstellungen gelöscht werden, welche nicht den Standardwerten entsprechen. Die Konfigurationseinstellungen der verschiedenen Storeviews werden hierbei nicht verändert oder...
31.03.2012
Nach einem Update auf Magento 1.5 müssen erstmal einige Bugs gefixt werden, um das Produktive Arbeiten wieder zu ermöglichen. Dazu gehört neben dem Geburtstags Validierungs Bug auch der Kategorie Baum in der Produktansicht. In Magento 1.4 ist der Kategorie Baum in der Produktansicht standardmässig aufgeklappt gewesen. Dadurch hat man sofort gesehen, in welchen Kategorien das Produkt ist. Leider hat sich in diese Funktion in der Version 1.5 ein Bug eingeschlichen oder wurde absichtlich entfernt. Um in der Produktansicht wieder sofort einen Überblick über die ausgewählten Kategorie zu bekommen, sind folgende Schritte durchzuführen. Zuerst sollte man eine Sicherungskopie der Datei anlegen. Anschließend wird die ursprüngliche Datei bearbeitet und die getSelectedCategoriesPathIds Funktion mit der gleichnamigen Funktion der Magento Version 1.4 ersetzt: Anschließend sollte der Kategorie Baum in der Produktansicht wieder wie von den vorherigen Versionen gewohnt angezeigt...
03.03.2011
Bei Magento gibt es mehrere Möglichkeiten Blöcke anzulegen. Die einfachste Möglichkeit besteht darin, dass man die Blöcke direkt im integrierten CMS anlegt. Dadurch verliert man zwar die Möglichkeit in den Blöcken Code auszuführen, allerdings bestehen viele Blöcke sowieso nur aus statischen Inhalten. Statische Blöcke einbinden Am saubersten erfolgt die Einbindung in den Layout-XML Dateien: Alternativ dazu kann man Blöcke auch direkt in die Template Dateien ( .phtml ) einbinden: Die letzte Möglichkeit ist die Integration direkt in eine CMS-Seite:...
31.01.2011
Eine Website von einem Server auf einen anderen umzuziehen ist nicht einfach, deutlich schwieriger wird das ganze aber nochmal wenn die Website ein Shop ist. Da ich schon einige Magento Shops umgezogen haben, wollte ich meine Vorgehensweise vorstellen und die typischen Probleme bei einem Magento Umzug mit der entsprechenden Lösung auflisten. Bewährte Vorgehensweise Shopsystem auf dem Server zu einer .zip Datei zusammenfassen Die meisten Magento Shops dürften auf Managed-Servern oder Root-Servern laufen. Sowohl auf Root als auch auf Managed Servern sollte man die Möglichkeit haben den Shop zu zippen. Da Magento aus extrem vielen kleinen Dateien besteht, dauert der Transfer der Dateien ohne das zippen unnötig lange. Datenbank mit phpMyAdmin exportieren Beim Export der Datenbank sollte man darauf achten, dass die Option Fremdschlüsselüberprüfung deaktivieren aktiviert ist. Da Magento, wie alle größeren Shop Systeme, in der Datenbankstruktur viele Foreign Keys verwendet, kann es sonst zu Problemen beim Import führen. Am Ende der exportierten Datei wird die Fremdschlüsselüberprüfung von phpMyAdmin automatisch wieder aktiviert. Datenbank und Magento auf den neuen Server hochladen Die Datenbank kann man im komprimierten Zustand auch per FTP Client hochladen. Magento selbst sollte, um Zeit zu sparen, direkt von dem alten Server auf neuen Server übertragen werden werden. Magento entpacken Die Datenbank mit mysqldump oder bigdump einlesen. Datenbank Zugangsdaten ändern Falls sich die Datenbank Zugangsdaten auf dem neuen Server geändert haben, muss man diese in der Datei /app/etc/local.xml auch anpassen. In der Datenbank müssen anschließend noch zwei Werte modifiziert werden. Beide Einträge befinden sich in der Tabelle core_config_data. Der erste Eintrag ist web/unsecure/base_url, welcher die neue URL des Shops bekommen sollte. Der zweite Eintrag ist web/secure/base_url, welcher die...