Magento: PHP-Code in Content-Seiten (CMS) einbinden – HowTo

26. April 2011 at 18:00

Aus Sicherheitsgründen ist es nicht gestattet in Magento-CMS-Pages direkt PHP-Code einzubinden.

Über dem folgenden Weg ist dies möglich:

Im Template Ordner muss dazu eine Datei zum einbinden vorhanden oder angelegt werden. Z.B. die test.phtml welche im Ordner  /app/design/frontend/default/default/test/test.phtml abgelegt wird.

In dieser Datei kann, wie in den phtml-template-files üblich, php-code aufgerufen werden, z.b.:

<strong><?php echo "Hello World"; ?></strong>

In der CMS-Page ruft ihr diese Template-Datei wie folgt auf:

{{block type="core/template" template="test/test.phtml"}}

Windows 7: zeitgesteuert herunterfahren/neustart (CMD-Befehle)

20. April 2011 at 09:27

auto-shutdown-windows-7-info-fenster

Zeit gesteuertes herunter fahren oder neustart des Systems ist unter Windows wie folgt möglich:

  1. Kommandozeile öffnen ([Windows-Taste]+[R] drücken und CMD eingeben)
  2. Folgende Befehle / Parameter sind möglich (Eingeben und mit [Enter] bestätigen):

shutdown /s (Fährt den Rechner sofort herunter)
shutdown /s /t 600 (Rechner wird in 10 Minuten runtergefahren)
shutdown /r (Neustart des Rechners)
shutdown /f (Erzwingt das Schließen ausgeführter Anwendungen)
shutdown /a
(Bricht das Herunterfahren des Systems ab)

Magento: Attribute zur Checkout-Quote hinzufügen

14. April 2011 at 17:01

Zuerst muss in der Datenbank die Quote Tabelle entsprechend mit dem neuen Attribute erweitert werden, dies geht wie gewohnt über die setup-scripte (z.B. mysql4-install-0.0.X.php):

$installer = $this;
$installer->startSetup();
$installer->addAttribute('quote', 'new_attribute', array(
 'label'                        => 'New Attribute',
 'type'                        => 'varchar',
));
$installer->endSetup();

Danach könnt ihr, z.b. im OnepageController.php dieses Attribute wie folgt mit Werten füllen:

Mage::getSingleton('checkout/session')->getQuote()->setNewAttribute('value');
 Mage::getSingleton('checkout/session')->getQuote()->collectTotals();
 Mage::getSingleton('checkout/session')->getQuote()->save();

Be careful on input and type. Input means the input type of the attribute. And type means the input type in database.

For textfield it will be:
'input' => 'text',
'type' => 'text',

For textarea it will be:
'input' => 'textarea',
'type' => 'text',

For date field it will be:
'input' => 'date',
'type' => 'datetime',

For select list it will be:
'input' => 'select',
'type' => 'text',

For boolean select it will be:
'input' => 'boolean',
'type' => 'int',

Sitemap mit robots.txt verlinken – SEO Tipps

24. März 2011 at 18:20

Die Sitemap kann manuell über die Google Webmastertools für eine Webseite definiert werden. Für die Suchmaschinenoptimierung (kurz: SEO) ist die Auslieferung einer sitemap.xml für Suchmaschinen zu empfehlen.

Automatisch geht das auch über die folgende Definition in der robots.txt :

Sitemap: http://www.mysite.com/sitemap.xml

7 wertvolle SEO OnSite Tipps

17. März 2011 at 20:12

1) Was ist bei einem für SEO optimierten Text wichtig?

Häufig wird von Keyword-Density (Keyword-Dichte) gesprochen, wobei darauf zu achten ist das kein Keyword-SPAM entsteht welcher schlimmstenfalls zu einem Google-Penalty (Abstrafung durch Google) führt. Praxis-Tests haben gezeigt, dass lange Texte besser im Ranking positioniert werden, also kurz optimierte Texte. Google legt immer mehr Wert auf guten und viel Content, umso mehr, umso besser. Ca. 100 Wörter ist eine gute Richtlinie, auch weil viele Webseiten-Besucher Texte über diese Länge meiden bzw. zu Ende lesen. Bei kürzeren Texten kommt meist der Informationsgehalt zu kurz.

Keyword-Density ist unwichtig! Ein Keyword am Anfang, in der Mitte und zum Ende des Textes reichen völlig in der Größenordnung von ca. 100 Wörtern.

Wichtiger ist dagegen an Neben-Keywords zu denken. Ein Keyword-Optimizer kann helfen ähnliche Wörter/Kombinationen oderKombinationen finden, wichtig vor allem um besseren Longtail zu erhalten.

2) Welcher Mehrwert haben Bilder, Videos oder optimierte Listen?

Durch Bilder wird die Seite auf, des weiteren wird die Seite bzw. die Bilder in der Google-Bildersuche gefunden, wodurch der Besucherstrom/Webseitenreichweite verbessert wird und Schluss endlich der Longtail optimiert.

Videos sind gut um die Verweildauer zu verlängern.

Eine Strukturierte Webseite mit Zwischenüberschriften und Listen kann durch Google besser indexiert werden, hinzu kommt das eine semantisch gute Webseite (Stichwort: Web 3.0) besser für jegliche Maschinen, Clients, etc. gelesen werden kann.

3) Welche Meta-Angaben sind wichtig?

Das Meta-Tag „Description“ kann die Klickrate bei Google verbessern.

Die Sprach- und Länderangaben können sehr nützlich sein, auch weil Google das Ranking von dem Standort des Suchmaschinen-Benutzers abhängig macht.

Tags die „noodp“ (besagt dass der Beschreibungs-Text nicht aus dem Open Directory Project übernehmen werden soll) und anderte, kann verzichtet werden.

4) Welche Meta-Angaben sind denn wirklich wichtig?

Das Meta-Tag „Description“ ist für die Durchklickrate bei Google wichtig.

Auch Sprach- und Länderangaben können sehr nützlich sein.

Auf „noodp“ (= nicht den Text aus dem Open Directory Project übernehmen) und den meisten anderen Kram können wir verzichten.

Zu erst sollt man analysieren welche Seiten „wichtig“ und welche „unwichtig“ sind!

Unwichtige Seiten sind z.B. Fehler-Seiten (404 Error Page), Leere Ergebnisseiten aus Filterfunktionen, paginierte Kategorieseiten (Duplicate Content vermeiden), etc.

Allg. kann man sagen, alle Seiten welche kein Mehrwert für den Besucher bringen.

Die einfachste Möglichkeit Google zu sagen, dass diese Webseiten nicht indexiert werden soll ist den „noindex“ Tag auf der Seite zu setzen. Bei Übersichtsseiten (Listen) sollte ein „follow“ dahinter gesetzt werden, wenn eine Indexierung der verlinkten Seiten erwünscht ist.

Ebenfals nützlich ist das Cononical-Tag, auch um für Google bei Duplicate Content die Ursprungsseite zu markieren.

5) Welche sind die häufigsten Einsteiger-Fehler im Bereich SEO?

Die Verwendung falscher Keywörter ohne Abgleich nach dem Suchvolumen. Selbst eine Keywort optimierte Seite bringt keine Besucher, wenn niemand danach sucht.

Zu glauben, dass man mit einer beliebigen Firmenwebseite mit einem heiß umkämpften Keyword (z.B. „Arzt“), ohne weiteres auf Platz 1 landen kann. Wichtig wäre dagegen mehr auf Suchphrasen zu optimieren.

Die Verwendung unnötiger oder veralteter Tags, z.B. das Meta-Keyword-Tag wird nicht mehr von den Suchmaschinen verwendet, muss deshalb auch nicht gesetzt sein. Viele Einsteiger setzen hingegen dies gar manuell, einfach verschwendete Zeit.

6) Welche Fehler machen erfahrene SEOs am häufigsten?

Zu lange Inhalte mit falscher Keyword-Density von z.B. 10 Prozent, danach Penalty durch Google oder gar Ausschluss aus dem Index.

Weiterbildung, selbst wenn vor 2-3 Jahren ein Projekt mit diversen Praktiken/Tricks gut gerankt hat, so muss dies heute nicht mehr gelten. Google verändert nahezu täglich ihren Algo und die Gewichtung der Einfluss-Faktoren. Z.B. Social-Media war vor 2 Jahren kaum ein wichtiger Ranking-Faktor, aktuell hat Google den Social-Graph geschaffen und eine Webseite welche gut im Social-Media-Umfeld vernetzt ist deren Wert steigt bei Google und damit ebenfalls das Ranking.

Die Optimierung sollte jeweils passend zur Seite sein, die Methoden zur Optimierung sind bei einem Webshiop anders als bei einem Portal, einer Community oder Affiliate-/Landing-Page.

Projekte nicht regelmäßig beobachten und Erfolge auswerten. Gerade aufgrund des sich regelmäßig sich ändernden Algorhytmus und die Gewichtung der Einflussfaktoren, sollte eine Webseite in regelmäßigen Abständen (mind. alle 1/2 Jahre) neu auf die aktuelle SEO & Social-Media-Optimierung analysiert werden.

Schauen was die anderen Webseiten so machen. Gerade wenn es um Werbeeinnahmen, Besuchertreue oder Konversion-Optimierung geht, ist Verweildauer ein wichtiges Thema. Vielleicht wird dieser Faktor gar in der Zukunft ein wichtiges Ranking-Kriterium? Eine kurze Verweildauer spiegelt auch den Wert der Webseite wieder, maßnahmen zur Verlängerung sollten umgesetzt, zu minntest diskutiert werden.

7) Welche Tipps und Trends im Bereich Onsite gibt es für das SEO Jahr 2011?

HTML5

Rich Snippets für Bewertungen, Kommentare und viele andere Informationen.

Integration in Social-Media – Google lässt die Besucher entscheiden welche Webseite wertvoll ist. Umso mehr „Likes“, Tweeds, Verlinkungen, etc. umso höher der Wert des Artikels oder der Seite (Stichwort: Social Media Graph)

Semantisches Web 3.0 (Jedes Jahr auf’s neue, bis es endlich flächen deckend umgesetzt wurde)

Webseiten ohne Flash mit Alternativer Umsetzung mit HTML5 oder Java-Script (Stichwort: Barrierefreie Webseiten)

und noch viele weitere, 1 Internet Jahr kann sehr lang sein, das internet ist schließlich sehr schnelllebig

linux: cron.daily vs. cron.d

10. Februar 2011 at 14:22

Ihr fragt euch warum es die /etc/cron.d/ nicht zu verwechseln mit der /etc/cron.daily/ gibt?

Hier die Erklärung:

/etc/cron.daily/: die dort definierten cron-jobs werden einmal am Tag ausgeführt – analog zu allen regelmässigen crons gibt es auch hourly, monthly, weekly …

/etc/cron.d/: die dort definierten cron-jobs müssen Angaben haben, wann sie ausgeführt werden sollen. Dabei handelt es sich hier mehr um eine Erweiterung der /etc/crontab bzw. /var/spool/cron/tabs/*

Tipp: cron.daily ist nicht exakt dasselbe wie die Zeitangabe @daily in der crontab (bzw. im cron.d)

Wie wird eine Banane richtig geöffnet?

8. September 2010 at 19:58

Heute ein etwas andere Praxis-Tipp: Wie öffnet man eine Banane richtig? Das folgendes Video zeigt, wie man eine Banane richtig öffnet. Sogar die Affen, deren Hauptnahrungsmittel ja bekanntlich Bananen sind, sollen das leckere Obst nicht oben sondern unten aufmachen. Das geht schneller und ist vor allem praktischer.

Magento: Session Variable – Set Unset Session Variable

20. August 2010 at 15:48

Es wird eine individuelle Variable mit den Namen „magentoTest“ angelegt. Der Wert für diese ist in diesem Fall „hello magento“.

$session = Mage::getSingleton('core/session', array('name'=>'frontend'));
$session->setMagentoTest('hello magento');

Abfragen der Werte:

$test = Mage::getSingleton('core/session')->getMagentoTest();

Session Variable löschen / unset

Mage::getSingleton('core/session')->setMagentoTest();

Nur eine bestimmte Session-Variable löschen:

Mage::getSingleton('core/session')->unsMagentoTest();

(Im Frontend die Customer oder Core Session benutzen. Im Backend die Adminhtml Session benutzen.)
Core Session:- Mage::getSingleton(‘core/session’)
Customer Session:- Mage::getSingleton(‘customer/session’)
Admin Session:- Mage::getSingleton(‘adminhtml/session’)

10 Tipps für bessere Landingpage Texte

22. Juni 2010 at 15:54

10 gute Tipps für bessere Landingpage Texte findet ihr hier

5 Anfänger Tipps für Magento-Einsteiger

18. Juni 2010 at 03:31

magento ecommerce logoDieser Artikel ist für Neueinsteiger gedacht, welche sich für einen Onlineshop auf Basis von Magento-Commerce interessieren. Wenn Sie sich bereits längere Zeit mit Magento beschäftigt haben, werden Ihnen diese Punkte sehr wahrscheinlich bereits bekannt sein.

1. Unterschätze den Aufwand nicht

Magento ist eine eCommerce Open-Source-Lösung für den Enterprise-Bereich der Firma Varien. Es setzt auf objektorientiertes PHP und dem Zend Framework.  Magento ist aufgrund des offenen Quellcodes (open source) ideal um es seinen eigenen Wünschen anpassen, sei es auf Template Basis (Design & GUI) oder Erweiterung der Funktionalität durch neue Plugins. Als Magento-Entwickler sollte man Kenntnisse in PHP5,Objekt Orientiere Programmierung (OOP) , Zend Framework, XHTML, XML, AJAX, JavaScript und MySQL mit bringen.

2. Installieren Sie Magento über die Download-Version

Magento kann als Vollversion herunter geladen werden und per FTP installiert werden. Einfacher ist es jedoch, den Download-Installer zu verwenden. Dieser lädt automatisch die benötigten Dateien nach, und legt diese auch mit den besseren Dateirechten auf einem Linux/Unix-Server an.

3. editieren Sie keine Core-Dateien

Gerade als Neueinsteiger in Magento möchte man schnell Änderungen herbeiführen und führt im Änderungen in den Core-Dateien durch. Diese liegen unter app/code/core. Bei einem Update werden diese Änderungen jedoch überschrieben, ein manuelles nachpflegen ist zeitaufwendig und geht ggf. schief. Änderungen an entsprechenden Dateien sollten in einer Kopie dieser in den Ordner app/code/local vorgenommen werden. Soll zum Beispiel die Datei

app/code/<strong>core</strong>/Mage/Checkout/Block/Success.php

geändert werden, diese kopieren nach

app/code/<strong>local</strong>/Mage/Checkout/Block/Success.php

Somit bleibt die Original Core Datei unberührt und wird beim nächsten Update nicht überschrieben.

Eine bessere Variante ist gar das Überschreiben von Blöcken/Models. Eine ausführliche Einführung dazu gibt es im Wiki von Magento.

4. Beim Theme-Design nur die notwendigen Dateien ändern

Das Template-Modul von Magento fällt auf immer dann auf das Standard-Theme zurück, wenn es notwendig ist. Viele Anfänger machen den Fehler und kopieren sich ein komplettes Theme, um es dann ensprechend zu modifizieren. Das ist nicht notwendig, es reicht aus, nur die Dateien in ein neues Theme zu kopieren, die tatsächlich für die Änderung notwendig sind. Der Rest bleibt im default/default-Verzeichnis und wird per Fall-Back-Prinzip aufgerufen so lange die Datei im neuen Template Verzeichnis nicht existiert.

5. API-Aufrufe Vermeiden

Magento bietet eine umfrangreiche API mit der Sie viele Daten lesen und schreiben können. Leider ist diese sehr langsam und sollte deshalb nur bei einem Zugriff aus z.B. einer externen Warenwirtschaft oder Java-Applikation genutzt werden. Bei eigenen Modulen sollten Sie die PHP-Skripte direkt einbinden und um so den direkten Zugriff auf die internen Magento-Funktionen zu erhalten.

Hier ein kleines Beispiel einer Artikelliste:

require_once 'app/Mage.php';
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$product =
Mage::getModel(‚catalog/product‘);;
// 13 ist die Produkt-ID
$product->load(13);
$product->
setName("Neuer Name"); # jedes Attribut kann mit setXyz() angesprochen werden
$product->save();

Weitere Tipps?

Sie haben weitere Tipps für Magento Neueinsteiger? Gerne teilen wir diese mit unseren Lesern. Nutzen Sie die Kommentarfunktion.