Magento: Alle Modul Rewrites anzeigen

Magento: Alle Modul Rewrites anzeigen

Magento ist durch seine Flexibilität sehr beliebt bei Händlern und Entwicklern. Vor allem das einfache Erweitern und Überschreiben von Models und Blöcken ermöglicht eine vielfältige Modul Landschaft. Durch den vielfältigen Einsatz von Plugins kommt es aber auch immer wieder zu Problemen, wodurch neu installierte Plugins nicht funktionieren. Durch den technischen Aufbau von Magento 1 kann jedes Model nur einmal von einem Standard Plugin überschrieben werden, da die Plugins alle die gleichen Klassen erweitern. Natürlich kann man hier aber händisch nacharbeiten und die jeweiligen Plugin Klassen anpassen. Hierfür muss man allerdings wissen, welche Plugins bereits Core Models oder Blöcke erweitern. Wie bekomme ich eine Liste mit allen Klassen Rewrites? Am einfachsten und ohne zusätzliche Tools geht das mit Magento mit der Mage::getConfig() Methode. Falls man nur die überschriebenen Blöcke oder Models ausgeben will, kann man dieses mit einer Erweiterung des Parameters erreichen. Mit n98-Magerun eine Rewrite Liste erzeugen Etwas einfacher geht das ganze auch mit dem Magento Tool n98-magerun. Das Tool, welches sich selbst als das Schweizer Taschenmesser für Magento bezeichnet, liefert für genau diesen Einsatzzweck eine Funktion mit. Nachdem man die .phar Datei heruntergeladen hat und in das Magento Verzeichnis gelegt hat, kann man sich alle rewrites mit diesem Befehl anzeigen lassen. Durch das eigene Parsen der config Files ist es dem Tool sogar möglich, eventuell bestehende Konflikte zwischen verschiedenen Modulen aufzuzeigen....
Magento: Seiten auf noindex,nofollow setzen

Magento: Seiten auf noindex,nofollow setzen

Jeder Webshop beinhaltet auch Unterseiten, welche nicht von Google indexiert werden sollen. Das kann die verschiedensten Gründe haben, zum Beispiel dass der Inhalt zwar für den Besucher interessant ist, aber eigentlich nur Duplicate Content ist und in gleicher Form bereits auf der Webseite eines Zulieferers verfügbar ist. Mit Magento hat man die Möglichkeit den meta robots Tag über eine Extension, wie beispielsweise dieser, für jede Seite im Admin Menü zu hinterlegen. Hierfür eine Extension zu installieren ist sinnvoll um ganze Verzeichnisse und Unterseiten mit einem noindex Parameter zu versehen. Noindex in der layout.xml Datei hinterlegen Falls man nur wenige Seiten auf noindex stellen will, ist das einfügen der noindex Anweisungen in der layout.xml Datei ein guter Weg. Mit dem Code wird jede Seite, welche den jeweiligen layout code lädt, auf NOINDEX,FOLLOW gesetzt. Beispielsweise kann man mit diesem Code jede Produkt Unterseite auf noindex stellen. Natürlich ist es möglich auch andere Kombinationen wie NOINDEX,NOFOLLOW oder INDEX,FOLLOW in die jeweiligen Code Snippets einzutragen. Übrigens: Die gleiche Layout Reference kann auch für Title und Description benutzt werden. Im nächsten Codebeispiel wird nicht nur der meta robot Tag gesetzt, sondern auch der Title und die Description verändert. Noindex für CMS Seiten hinterlegen Genauso einfach wie man Layout Anweisungen in der layout.xml Datei verändern kann, kann man diese auch auf Seiten im Magento CMS verändern. Die Anweisungen bleiben dabei komplett die...
?___store Parameter aus Magento urls entfernen

?___store Parameter aus Magento urls entfernen

Man ist gerade dabei den eigenen Magento Shop in mehreren Sprachen verfügbar zu machen und stößt einige Wochen später auf ein großes Problem: der Magento Shop produziert sehr viel Duplicate-Content, welcher von Google liebend gerne indexiert wird. Plötzlich erscheinen viele Seiten im Index, welche den ___store-Parameter beinhalten und dabei unschöne Urls wie http://www.beispielshop.de/?___store=english oder http://www.beispielshop.de/?___store=default erzeugen. Theoretisch kann dadurch jede Produkt-Unterseite mehrfach indexiert werden, was zu Rankingverlusten führen kann. Wie so oft in der Software Entwicklung kann man das Problem auf mehreren Wegen lösen. Lösung 1: Store Parameter als festen Bestandteil in die Url aufnehmen Magento bietet die Möglichkeit einen Shop mit mehreren Sprachen auf einer Domain zu betreiben. Ist die Option aktiviert, wird in den Verzeichnisbaum automatisch der jeweilige Storecode integriert. Die Url für den default Shop würde dann zum Beispiel so ausschauen: http://www.beispielshop.de/default/produkt123.html Die Option ist in der Magento Konfiguration unter System -> Configuration -> Web -> URL Options mit dem Namen Add Shop Code to URLs auffindbar. Steht diese Option auf „Ja“ wird der Url Pfad automatisch erweitert. Falls dieser Lösungsansatz gewählt wird, ist es sinnvoll dem default Shop einen „sprechenden“ Namen zu geben. Der Name des Shops kann in Magento unter System -> Manage Shops angepasst werden. Lösung 2: Das Template modifizieren Bei der zweiten, üblichen Lösung für das Problem passt man das Template an einer Stelle minimal an. Hierzu muss in dem language-switcher Template in der Datei page/switch/languages.phtml folgende Stelle: mit folgender Steller ersetzt werden: Nach der Änderung erstellt Magento die Wechsel Urls ohne den...
Magento: Skin URL, Media URL, Base URL und Store URL in Blöcken verwenden

Magento: Skin URL, Media URL, Base URL und Store URL in Blöcken verwenden

Magento bietet dem Nutzer vielfältige Möglichkeiten, um eine Magento Installation möglichst flexibel zu gestalten. Ein gutes Beispiel hierfür ist die Verlinkung mit URL-Variablen. Mit der Verwendung von URL-Variablen in CMS-Seiten oder Blöcken stimmen die URLs auch nach einer Domain Änderung noch. In Ergänzung zu einem alten Post, hier noch die vollständige Liste mit URL-Variablen in Magento Seiten und Blöcken. Skin Urls Die Skin-Url Variable liefert den Link zu dem gewählten Template zurück, bei welchem die Datei auffindbar ist. Genauso wie bei dem Template Fallback (falls eine Template-Datei nicht verfügbar ist, wird das nächste Template gescannt) verhält es sich hierbei mit Bildern, CSS Dateien oder JavaScript Dateien. Media Urls Um auf ein Bild zu verlinken ist die Media Variable die richtige Wahl. Als Parameter kann man auch hier der Variable einen Pfad mitgeben zu dem jeweiligen Bild. Store Urls Zu guter letzt sollte man auf jeden Fall noch die Store / Base URLs erwähnen. Mithilfe von diesen kann man auf jede beliebige Unterseite verlinken, wie zum Beispiel auf CMS-Seiten. Die Store Url ist hierbei speziell für Multistore Umgebungen hilfreich, wenn unterschiedliche URLs für die Stores existieren....
Magento: Redirect von non-www zu www

Magento: Redirect von non-www zu www

Magento leitet in der Standardkonfiguration alle Requests, welche nicht die korrekte Domain enthalten, auf die Startseite weiter. Dadurch landen Kunden oft auf der Startseite, obwohl Sie eigentlich direkt zu einem bestimmten Produkt oder eine Kategorie kommen wollten. Angenommen ein Shop wurde auf der Domain www.example.com installiert. Ein Nutzer versucht nun die Unterseite „category123“ aufzurufen und vergisst dabei das www in der Domain. Der Nutzer wird http://example.com/category123 aufrufen und Magento wird den Nutzer auf die Startseite der korrekten Url weiterleiten, welche in diesem Fall http://www.example.com ist. Natürlich wäre es deutlich sinnvoller, wenn Magento den Besucher direkt auf die jeweilige Unterseite der korrekten Domain weiterleiten würde. Das Problem lässt sich allerdings mithilfe von .htaccess sehr leicht lösen. Die folgenden Zeilen müssen dazu oben in die .htaccess Datei der Magento Installation kopiert werden....
Magento: Mehrere Felder zum sortieren einer Collection benutzen

Magento: Mehrere Felder zum sortieren einer Collection benutzen

Bei der Modul-Entwicklung für Magento arbeitet man sehr oft mit Collections. Um diese zu sortieren benutzt man die „setOrder“ Methode der Collection. Mit der selben Methode ist es auch möglich eine Datenbank Abfrage zu schreiben, welche nach 2 Feldern sortiert, indem man die Methode zweimal aufruft. Die SQL-Abfrage sortiert dann zuerst nach dem Feld „created_at“ und anschließend nach dem Feld...
Magento: dbModel read resource does not implement Zend_Db_Adapter_Abstract

Magento: dbModel read resource does not implement Zend_Db_Adapter_Abstract

Oftmals erscheinen bei Magento Fehlermeldungen, welche nicht auf den ersten Blick verständlich sind. Warum erscheint zum Beispiel die folgende Fehlermeldung, ohne dass Dateien geändert wurden? Probleme mit dem Cache In diesem konkreten Fall, wurden die MySQL Zugangsdaten geändert und die alten Zugangsdaten waren noch im Cache hinterlegt. Hier hilft es den Cache via FTP oder PHP zu leeren. Probleme mit Extensions Oftmals tritt der Fehler auch nach der Aktivierung einer Extension auf. Dann hilft es nur in Ausnahmefällen den Cache zu leeren. In diesem Falle würde ich die Extension deaktivieren und anschließend den Cache noch einmal leeren. Falls der Fehler immer noch auftritt, sollte man seine local.xml Datei überprüfen, ob diese noch die korrekten Daten für die Datenbank...
Magento: Besucher der Seite dauerhaft identifizieren

Magento: Besucher der Seite dauerhaft identifizieren

Im E-Commerce ist es sehr einfach die Besucher einer Seite durchgehend zu identifizieren. Dadurch kann man die Aktionen der einzelnen Benutzer aufzeichnen und auswerten. Das gängigste Tool hierfür ist Google Analytics. Aber auch innerhalb des Magento Öko-Systems macht es Sinn, den Besucher einer Seite zu tracken und seine Aktionen aufzuzeichnen. Dadurch kann man beispielsweise die zuletzt angesehenen Artikel prominenter platzieren. Auch wäre es möglich, die Intention des Besuchers anhand vergangener Besuche zu erraten und dem Nutzer die passenden Produkte, Kategorien oder FAQ-Seiten anzeigen. In Magento hat man verschiedene Möglichkeiten einen Nutzer zu identifizieren. Falls der Nutzer sich bereits eingeloggt hat, ist dies am leichtesten über die CustomerId zu erledigen: Da viele Kunden auf Magento Shops allerdings nicht eingeloggt sind (oder sich erst kurz vor dem Kaufvorgang einloggen), muss man auch die Möglichkeit abdecken, dass der Kunde derzeit nicht eingeloggt ist. Ich setze hierfür gewöhnlich die SessionId ein. Diese SessionId wird bei jedem Besucher einer Magento Seite in Form eines Cookies hinterlegt und bleibt identisch, bis der Kunde die Cookies löscht oder die Session abläuft. Wie lange eine Session gültig ist, kann im Magento Backend hinterlegt werden. Um die SessionId abzufragen kann man folgende Methode benutzen: Natürlich kann man die zwei Methoden auch miteinander verknüpfen, um die gespeicherten Daten über den eingeloggten Kunden noch zu...
Magento: aktuelle URL ermitteln

Magento: aktuelle URL ermitteln

Für die Template Entwicklung ist es oft notwendig die aktuelle Url zu ermitteln. Aber auch für viele andere Einsatzzwecke braucht man die Funktion immer wieder. In Magento gibt es eine Vielzahl verschiedener Möglichkeiten die aktuelle Url zu ermitteln und ich will daher nur zwei sehr gängige Möglichkeiten aufzeigen. Es gibt, je nach Spezialfall, aber auf jeden Fall noch weitere, sinnvolle Möglichkeiten. Die gängigste Variante ist, die Url über die Core/Url Helper Klasse aufzurufen. Das sieht dann so aus: Die Url über das Store Objekt aufzurufen ist genauso möglich: Ich benutze eigentlich immer die core/url Helper Klasse. Ich denke, dass ist der einfachste Weg um an die aktuelle Url von Magento zu kommen. Falls ihr nur den aktuellen Pfad der Url benötigt, um diesen mit anderen Werten abzugleichen könnt ihr folgenden Code verwenden. Im Beispiel wird überprüft, ob die aktuelle Url eine Url des Blogs ist....
Magento: MySQL Debuggen

Magento: MySQL Debuggen

Magento hat zwar ein gutes Debugging System integriert, allerdings kommt es oft zu Problemen mit dem debugging von MySQL-Queries. Diese stellen einen zu langen String da und werden daher in der Fehlermeldung ab einer gewissen Länge einfach gekürzt. Oft kann man dann kaum noch sinnvolle Informationen aus der Fehlermeldung rauslesen, wie Beispielsweise hier: Aus dieser Fehlermeldung kann man zwar rauslesen, dass es ein Problem mit einem Primary Key gibt, nicht allerdings welche Tabelle das betrifft. Zum Glück haben die Magento Entwickler aber genau für diesen Fall vorgebaut und eine separate MySQL Debugging Funktion eingebaut. Diese kann in der Datei /lib/Varien/Db/Adapter/Pdo/Mysql.php aktiviert werden. Hierfür muss in der Zeile 103 (Version 1.7) die Variable $_debug auf true gesetzt werden: In früheren oder späteren Version kann die Zeile vielleicht etwas variieren, die Datei sollte aber bis zur Magento Version 2.0 die gleiche bleiben. Anschließend werden MySQL-Debug Informationen inklusive der kompletten MySQL-Queries in die Datei /var/debug/pdo_mysql.log geschrieben, wodurch man die Probleme besser verstehen und...
jojobet
deneme bonusu
betmoon giriş
tarafbet giriş
betpark güncel giriş
Dinamobet
perabet giriş
jojobel
deneme bonusu
phisingbet
meritking giriş
vevobahis giriş
betgaranti giriş
madridbet
romabet güncel giriş
betticket
madridbet güncel
pokerklas giriş
bets10
kolaybet güncel giriş
betpas güncel giriş
Freespin Veren Siteler
bets10 giriş
casibom
jojobet giriş
enbet güncel
jojobet
galabet giriş
interbahis güncel giriş
kalitebet
marsbahis giriş
canlı casino siteleri
perabet
meritking güncel giriş
betpark
marsbahis giriş
bahsegel giriş
betmatik güncel giriş
betticket güncel giriş
matadorbet güncel giriş
güvenilir bahis siteleri
Dinamobet güncel giriş
Dinamobet giriş
pulibet giriş
jojobet
paşacasino giriş
gorabet giriş
restbet güncel giriş
kolaybet giriş
primebahis
Jokerbet giriş
betsilin
piabet
betpark
betper giriş
kolaybet güncel giriş
interbahis
madridbet
phising bet
Tophillbet giriş
deneme bonusu
extrabet
kavbet
betpark güncel giriş
vaycasino
betplay
bahsegel güncel giriş
jupiterbahis giriş
phising bet
romabet güncel
restbet giriş
restbet güncel giriş
tarafbet giriş
betpas güncel
tarafbet
trendbet
jojobet
süperbahis giriş
superbahis
betpark giriş
casibom giriş
jojobet giriş
betmatik güncel giriş
bahiscasino
vevobahis
betgaranti güncel giriş
canlı casino siteleri
Marsbahis
jojobet giriş
deneme bonusu
betgaranti güncel giriş
kolaybet giriş
betsmove giriş
deneme bonusu veren siteler
pokerklas giriş
safirbet giriş
betplay giriş
Dinamobet güncel giriş
meritking
gorabet
phising
betasus
kalitebet
piabet
jojobel
superbahis
interbahis
betpark
Meritking giriş
timebet giriş
robinbet giriş
perabet
phising
betmatik
jojobel
balinabet güncel giriş
betpark
marsbahis giriş
jojobet güncel giriş
enbet giris
betpark giriş
betpark
Betsmove
betgaranti
pokerklas güncel giriş
jojobet
phising bet
atlasbet
betpark giriş
casibom giriş
betgaranti
Dinamobet
perabet giriş
betpark güncel
betgaranti
betwinner giriş
mariobet
madridbet giriş
betpas güncel giriş
palacebet giris
phisingbet
mersobahis
extrabet güncel giriş
betgaranti güncel giriş
kolaybet
betpas giriş
goldenbahis
paşacasino
jojobet
extrabet giriş
mavibet
betsat güncel giriş
betpark giriş
belugabahis güncel giriş
betplay güncel giriş
Dinamobet giriş
madridbet giriş
kolaybet giriş
limanbet güncel giriş
betpark giriş
marsbahis phising
avrupabet
padişahbet
Betsmove güncel Giriş
meritking güncel
safirbet
alobet giriş
bahisvebahis
jojobet
casinoroyal
betgaranti giriş
betpark giriş
romabet giriş
casibom
tophillbet giriş
güvenilir bahis siteleri
trendbet
betpark giriş
marsbahis giriş
marsbahis giriş
casibom giriş
kingroyal giriş
slot siteleri
kolaybet giriş
ngsbahis güncel giriş
betplay güncel giriş
ngsbahis giriş
enbet
İmajbet güncel giriş
superbetin güncel giriş
betpark güncel giriş
betpark güncel giriş
royalbet
Meritking giriş
primebahis güncel giriş
kingroyal güncel
royalbet giriş
pasacasino
restbet
royalbet güncel giriş
Jojobet
jupiterbahis
interbahis
piabet
jojobel
pusulabet
betpas
betpark giriş
betplay güncel giriş
betpark giriş
phising
bahisvebahis
deneme bonus
lunabet
bahisvebahis giriş
jojobet giriş
betpark güncel giriş
pokerklas giriş
primebahis giriş
casibom giriş
galabet giriş
betgaranti güncel giriş
extrabet güncel giriş
interbahis
jojobel
safirbet giriş
restbet giriş
Jojobet
darkbet giriş
casino siteleri
betplay güncel giriş
betgaranti giriş
meritking giriş
casibom
canlı casino siteleri
meritking giriş
betpark
pulibet
mersobahis giriş
meritking
restbet
bets10 giriş
perabet
meritking giriş
aresbet giriş
betpark giriş
jojobet giriş
casino siteleri
deneme bonusu
betplay giriş
betpas
betgaranti giriş
hiltonbet güncel giriş
phising bet
betturkey
kralbet
enbet giriş
Limanbet giriş
zirvebet giriş
Meritking güncel giriş
mariobet giriş
kazandra giriş
superbetin giriş
bahsegel güncel giriş
Setrabet giriş
jojobel
madridbet
teosbet
süperbahis giriş
galabet güncel giriş
piabet giriş
Marsbahis
betsilin giris
hiltonbet
mersobahis güncel giriş
jokerbet
perabet güncel giriş
tophillbet güncel giriş
deneme bonusu veren siteler
betsmove güncel giriş
pokerklas güncel
kralbet giriş
phising bet
betplay giriş
belugabahis güncel giriş
meritking
jojobet
romabet giriş
avvabet
jojobet güncel
casibom giriş
süperbahis giriş
kalitebet giriş
extrabet güncel giriş
marsbahis giriş
casibom güncel giriş
interbahis güncel giriş
meritking
balinabet giriş
Dinamobet güncel giriş
kingroyal
teosbet
jojobel
pokerklas
primebahis giriş
süperbahis
enbet giriş
betsat giriş
avrupabet
belugabahis giriş
betpas giriş
betpark giriş
klasbahis giriş
deneme bonusu veren siteler
kingroyal giriş
betpark güncel
ngsbahis giriş
betpas giriş
kingroyal
casibom giriş
extrabet
kalebet güncel giriş
Slot Siteleri
pokerklas güncel giriş
holiganbet
Dinamobet giriş
Dinamobet güncel giirş
kralbet giriş
vaycasino
casibom giriş
interbahis giriş
deneme bonusu veren siteler
kingroyal
meritking
pusulabet
jokerbet
betpark
meritking giriş
betper güncel giriş
phising bet
pasacasino
betgaranti
betplay giriş
jojobet
jojobet
kingroyal
kavbet giriş
primebahis
betsmove
marsbahis
bets10
Pusulabet
avvabet
betasus giriş
jojobel
paşacasino giriş
betplay
avrupabet giriş
zirvebet
extrabet giriş
milanobet
deneme bonusu
vevobahis
bahisvebahis güncel giriş
betpark giriş
casibom giriş
ZBAHİS
phising bet
betper
royalbet güncel giriş
pulibet
extrabet
alobet
jojobel
vaycasino giriş
perabet güncel giriş
betplay güncel giriş
casibom
jasminbet
interbahis giriş
Betsmove
betpark
Perabet
primebahis güncel giriş
casibom
casinoroyal giriş
restbet
interbahis giriş
perabet
betpark giriş
darkbet
casino siteleri
casibom
deneme bonusu veren siteler
kingroyal güncel
xgo88
betwinner giriş
Setrabet güncel giriş
bets10 giriş
Dinamobet giriş
piabet giriş
romabet giris
teosbet
betplay giriş
deneme bonusu
galabet
betpark güncel giriş
milanobet
betpark
jasminbet giriş
betsilin
palacebet güncel giriş
kalitebet giriş
ngsbahis giriş
ngsbahis güncel giriş
interbahis
kingroyal giriş
betpas giriş
Meritking
restbet giriş
kralbet
balinabet
pokerklas
betplay güncel giriş
Betsmove
meritking güncel giriş
phising bet
Dinamobet güncel giriş
slot siteleri
grandbetting güncel giriş
avrupabet giriş
interbahis güncel giriş
Norabahis
kazandra
jojobel
betpark giriş
casibom
betpas
betpark
jojobet güncel giriş
betplay giriş
casibom
betpark giriş
ultrabet güncel giriş
betwinner
tophillbet güncel giriş
bets10
betsat
royalbet
tophillbet
robinbet giriş
Dinamobet
Perabet giriş
galabet giriş
meritking
deneme bonusu
superbetin
Dinamobet giriş
kazandra giriş
casibom giriş
superbahis
galabet
meritking güncel
betplay güncel giriş
vaycasino güncel giriş
atlasbet giriş
marsbahis giriş
kingroyal
interbahis
pulibet giriş
belugabahis
betplay giriş
enbet
deneme bonusu veren siteler
palacebet giriş
betpark
betpark güncel giriş
truvabet
bahsegel giriş
bahsegel
betplay
jojobel
casibom
tophillbet
galabet
avvabet giriş
betasus
vevobahis giriş
Avrupabet
interbahis güncel giriş
tophillbet güncel giriş
timebet
avrupabet güncel giriş
Dinamobet
betpas
truvabet
jokerbet güncel giriş
Kalebet
interbahis güncel giriş
perabet giriş
vaycasino
vaycasino giriş
bets10
kralbet giriş
tophillbet giriş
casibom giriş
restbet güncel giriş
phising bet
safirbet
betpas giriş
betgaranti giriş
betgaranti
safirbet
bahiscasino giriş
jojobet
galabet giriş
bahsegel güncel giriş
meritking güncel giriş
ngsbahis
pusulabet giriş
betgaranti giriş
betpark güncel giriş
betpark güncel giriş
robinbet
betgaranti
enbet
casibom giriş
kalitebet
betsilin güncel giriş
betpark güncel giriş
betpark güncel
kalitebet giriş
tarafbet
Betsmove güncel giriş
hitbet giriş
ngsbahis
baywin giriş
extrabet giriş