cancel
Showing results for 
Search instead for 
Did you mean: 

Quick Start to Magento Customization - Part 3

SOLVED

Quick Start to Magento Customization - Part 3

Hallo Smiley Happy

 

beschäftigte mich seit kurzen mit der Modulentwicklung bei Magento und arbeite die Quick Start Serie durch.

 

Ich habe bei mir die Magento Community Version 1.9.1 installiert und bin bei Part 3 der Quick Start Serie https://youtu.be/mh9VxfUZTNk 

 

Im Part 3 geht es darum das Modul CheckoutComments mit eigener Datenbanktabelle umzusetzen. Leider komme ich im Moment nicht weiter...

Mein Problem ist, dass im letzten Bestellschritt Schritt ein Ajax Requst fehlschlägt mit einem 500 Internal Server Error. Ich werde zum Warenkorb weitergeleitet.

 

Wenn ich das Modul über die XML Datei über den Parameter false deaktiviere dann kann ich erfolgreich eine Bestellung absetzen.

 

Ich habe mir zum Debuggen das Modul Firegento installiert und mich bei dem Event zum Speichern des Kommentars eingeklingt. Aber auch dies bringt mich nicht weiter...

 

Meine Observer.php sieht folgendermaßen aus:

 

<?php

class Practice_CheckoutComments_Model_Observer {

public function prepareCheckoutComment($observer) {
$message = $observer->getControllerAction()
->getRequest()
->getPost('checkoutcomments');
Mage::getSingleton('core/session')->setCheckoutComment($message);
}

public function saveCheckoutComment($observer) {
// log object to firegento
#Mage::helper('firegento/log')->debug($observer);

$order = $observer->getOrder();

$message = Mage::getSingleton('core/session')->getCheckoutComment(true);

// log variable to firegento
#Mage::helper('firegento/log')->log('$message: '.$message);

if( !$order || empty($message) ) {
return;
}

Mage::helper('firegento/log')->log('Order-Number: '.$order->getId());
Mage::helper('firegento/log')->log('Message: '.$message);
$commentModel = Mage::getModel('checkoutcomments/comment');
Mage::helper('firegento/log')->debug($commentModel);
$commentModel->setOrderId($order->getId());
Mage::helper('firegento/log')->debug($commentModel);
$commentModel->setComment($message);
Mage::helper('firegento/log')->debug($commentModel);
$commentModel->save();
Mage::helper('firegento/log')->log('Ja nachher');

}

}

Update das Problem muss tiefer liegen, weil hier scheint alles zu funktionieren bis auf das save()...

 

Weiß jemand Rat?

 

Viele Grüße

shaggy

1 REPLY

Re: Quick Start to Magento Customization - Part 3

Mein Fehler gefunden!

 

Es war ein fehlender Underscore im Resource Model bei der init() Methode.

 

Falsch

 

<?php

class Practice_CheckoutComments_Model_Resource_Comment extends Mage_Core_Model_Resource_Db_Abstract {
    
    protected function _construct() {
        $this->init('checkoutcomments/comments_table', 'comment_id');
    }
    
}

 Richtig

 

<?php

class Practice_CheckoutComments_Model_Resource_Comment extends Mage_Core_Model_Resource_Db_Abstract {
    
    protected function _construct() {
        $this->_init('checkoutcomments/comments_table', 'comment_id');
    }
    
}