Testen ob der Magento Cron funktioniert

Der Magento Cron Job ist folgendermaßen organisiert:

  • Der Server muss so eingestellt sein, dass alle 15 min (oder alle 5 Minuten oder jede Minute) folgendes Script aufgerufen werden muss:
    http://www.magentoroot.com/cron.php
  • Innerhalb der Programmstruktur von Magento sind die einzelnen aufgerufenen Methoden über die XML-Config-Dateien der einzelnen Module definiert.
  • Jedesmal, wenn http://www.magentoroot.com/cron.php aufgerufen wird, geht Magento die einzelnen XML-Config-Dateien durch, führt die Methoden aus, die in der jüngsten Vergangenheit ausgeführt werden sollen und terminiert die zukünftig auszuführenden Methoden.

Wie kann mann überprüfen, ob die Servereinstellung überhaupt richtig ist?

Dafür bietet sich an, einmal in eine Config-Datei des Magento-Core-Codes zu schauen:
in app\code\core\Mage\CatalogRule\etc\config.xml definiert der XML-Handle catalogrule_apply_all eine Funktion namens:
dailyCatalogUpdate in Mage_CatalogRule_Model_Observer, was man an folgendem Code sehen kann:

Fügt man also in der Funktion dailyCatalogUpdate in Mage_CatalogRule_Model_Observer eine Log-Methode ein, z.B.

… so sollte sich innerhalb der nächsten Stunde im Verzeichnis var/log eine Datei mit dem Namen my_cron_log finden, in der “test cron” steht.

CMS-Content mit XML-Layout in Magento ändern.

Wie verwende ich das individuelle Layout von Magento mit eigenen Templates?

Bearbeitet man eine CMS-Seite in Magento, so findet sich im linken Menu der Punkt Design. Hier kann man im Dropdown-Menu zwischen den zu verschiedenen zu Verfügung stehenden Layouts, wählen.

Diese sind in der Datei page.xml des jeweiligen Themes definiert.

Will man aber in einen bestimmten Bereich (in unserem Beispiel: content) ein bestimmtes (eigen entwickeltes) Template einsetzen, so erreicht man dies durch folgenden XML-Code, den man in das Textfeld XML für Layoutänderung einsetzt:

Im Beispiel wurde eine Suchmaske, die durch die Datei search/left.phtml definiert ist, in die Fehlerseite (404) eingesetzt, um somit Kunden die Möglichkeit zu geben, von der 404-Fehlerseite direkt im Shop zu suchen.

Hier auch der Screenshot dazu:

Magento-XML-Layout

In Magento ein Attribut im Nachhinein ändern (Einzeiliges Textfeld zu Mehrzeiligen Textfeld ändern)

Wenn man im Magento-Shop-System ein neues Attribut erstellt und im Wert “Katalog Eingabe-Typ für den Shopbetreiber” einzeiliges Textfeld eingibt, so lässt sich dieser Wert im Nachhinein leider nicht mehr verändern.

Dies kann dazu führen, dass man im späteren Betrieb die Feststellung macht, dass die Zeichenlänge bei einem einzeiligen Textfeld, die auf 256 Zeichen beschränkt ist, nicht mehr ausreicht.

Abhilfe verschafft eine relativ einfache Veränderung in der Datenbank, für die ich allerdings etwas suchen musste. Deswegen sei sie hier erklärt:

  1. In der Magento-Datenbank die Tabelle eav_attribute öffnen.
  2. Zeile mit dem richtigen Attribute-Code (Spaltenname ist eav_attribute) aufrufen.
  3. Änderung von den folgenden beiden Einträgen:
    backend_type –> in text (anstatt varchar) ändern.
    frontend_input –> in textarea (anstatt text) ändern.

Das alles lässt sich über die Shell auch sehr einfach mit folgendem mySql-Befehl erledigen:

 

my_attribute_code ist natürlich der Attribute-Code von dem Magento-Attribut, dessen maximale Anzahl von Zeichen im Textfeld verändert sein sollen.