münster-webdesign.net

Archiv für die Kategorie ‘Magento’

Magento Connect-Fehlermeldung beim Update von Magento 1.4.0.1 auf 1.4.1.1

Freitag, 27. August 2010

Beim Update von Magento 1.4.0.1 auf 1.4.1.1 hakt es dieses Mal beim Pear-Installer:

Exception caught:
Warning: Parameter 3 to PEAR_Task_Replace::validateXml() expected to be a reference, value given in [...] downloader/pearlib/php/PEAR/PackageFile/v2/Validator.php on line 1143

Zum Fixen genügt es, in der angegebenen Datei die Zeile “$this->_pf, $v, $this->_pf->_config, $save);” in “$this->_pf, $v, &$this->_pf->_config, $save);” zu ändern.

Magento: SQL-Kommandos direkt absetzen

Montag, 16. August 2010

Gelegentlich ist es sinnvoll, SQL-Statements in Magento direkt – beispielsweise im Controller – abzusetzen. Dies ist über einen direkten Zugriff auf die Resource-Model-Schicht möglich. Um direkt per SQL-Kommando in die Datenbank zu schreiben, genügt folgender Beispiel-Code:

$resource = Mage::getSingleton(‘core/resource’);
$write = $resource->getConnection(‘core_write’);
$write->query(“INSERT INTO tabellenname (spaltenname) VALUES (‘wert’)”);

Dazu analog das Auslesen von Tabellen per SQL-Kommando:

$resource = Mage::getSingleton(‘core/resource’);
$read = $resource->getConnection(‘core_read’);
$select = “SELECT * FROM tabellenname”;
$row = $read->fetchRow($select);

Die Methode fetchRow liefert dabei nur die erste Zeile des Ergebnisses  in Form eines assoziativen Arrays zurück. Alternativ stehen die Abfragemethoden des Zend-Frameworks respektive der Zend_DB_Adapter-Klasse zur Verfügung, sprich fetchAssoc(), fetchCol, fetchPairs() sowie fetchOne().

Magento-Extension Msvertnav: vertikale Baum-Navigation auf JavaScript-Basis

Mittwoch, 21. Juli 2010
Magento-Extension Msvertnav: Vertikale Navigation auf Javascript-Basis

Magento-Extension Msvertnav: Vertikale Navigation auf Javascript-Basis

Standardmäßig bietet Magento lediglich eine horizontale Drop-down-Navigation. Doch gerade bei tief verschachtelten Kategorien stößt diese schnell an ihre Grenzen: Wie soll ein Shop-Besucher beispielsweise komfortabel im Shop surfen, wenn die Drop-down-Navigation aus dem sichtbaren Bereich des Browserfensters hinausragt? Als Lösung bietet sich beispielsweise Rico Neitzels Magento-Extension Vertical Navigation with CSS Classes an.

Doch auch diese Magento-Extension ist nicht für jeden Einsatzzweck die optimale Lösung. Insbesondere bei vielen Navigationsebenen muss sich der Besucher häufig erst mühevoll hindurchklicken, denn schließlich muss jedes Mal – bevor die Kindelemente respektive untergeordneten Menüpunkte sichtbar werden – die Seite neu geladen werden. Dies ist insbesondere dann ärgerlich, wenn die übergeordneten Kategorien keine eigenen Artikel beinhalten sondern lediglich der Strukturierung des Shop-Angebots dienen. (weiterlesen…)

Magento: Individuelle Optionen (Custom Options) mit eigenem Modul anlegen

Freitag, 16. Juli 2010
Magento: Individuelle Optionen (Custom Options) per Modul einfügen

Magento: Individuelle Optionen (Custom Options) per Modul einfügen

Magentos Individuelle Optionen (Custom Options) sind ein probates Mittel, um Artikel um spezifische Sonderoptionen zu erweitern. Die Individuellen Optionen (Custom Options) sind daher auch für den Einsatz in eigenen Magento-Extensions interessant, zumal Magento die nötigen Methoden frei Haus liefert.

Um beispielsweise den Artikel mit der ID 1 eine Custom Option des Typs Radio Buttons mit einer Auswahlmöglichkeit – im Beispiel als Erste Möglichkeit bezeichnet – per Modul hinzuzufügen, genügt der folgende Code, der beispielsweise in einem eigenen Front-Action-Controller platziert sein könnte:

$options = array(
  'store_id' =>0,
  'title' => 'noch ein Testtitel',
  'type' => 'radio',
  'is_require' => 1,
  'max_characters' => null,
  'values' => array(
    array(
      'title'  =>'Erste Möglichkeit',
      'price_type' =>'fixed',
      'price' => 20.0000,
    ),
  ),
);

Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$product = Mage::getModel("catalog/product")->load(1);
$opt = Mage::getModel('catalog/product_option');
$opt->setProduct($product);
$opt->addOption($options);
$opt->saveOptions();

$product->setRequiredOptions(true);
$product->setHasOptions(true);
$product->save();

Ein besonderes Augenmerk gilt dabei dem $options-Array, dessen Aufbau je nach Input Type variiert und penibelst den Vorgaben der entsprechenden Eingabemaske im Magento-Backend entsprechen muss.

Magento DebitPayment-Modul JavaScript-Fehler: blzAjaxCheck is not defined

Donnerstag, 24. Juni 2010

Im Magento-Connect-Paket des aktuellen Magento-Community-Moduls “DebitPayment” in der Version 0.4 hat sich ein kleiner Fehler eingeschlichen: Im Magento-Connect-Paket fehlt die benötigte XML-Datei für das Frontend-Layout, die unter anderem den benötigen JavaScript-Code lädt. In der Folge funktioniert das Modul nicht und produziert stattdessen eine JavaScript-Fehlermeldung: blzAjaxCheck is not defined.

Abhilfe schafft der manuelle Download des vom Autor bereitgestellten ZIP-Archivs und das Hochladen der fehlenden XML-Datei.

Magento: Wysiwyg-Editor für eigene Module im Backend aktivieren

Mittwoch, 23. Juni 2010

Seit der Community-Version 1.4 steht im Magento-Backend standardmäßig ein Wysiwyg-Editor (TinyMCE) bereit. Was liegt also näher, als den neuen Wysiwyg-Editor für eigene Module im Magento-Backend zu verwenden? Bei der praktischen Umsetzung mussten wir allerdings feststellen, dass dies gar nicht so einfach ist und mit diversen Anpassungen einhergeht. (weiterlesen…)