Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Problem mit Event und Observer
 
Richard_Vogel
Jr. Member
 
Total Posts:  7
Joined:  2012-06-04
 

Guten Morgen!

Ich bin gerade dabei, mich in Magento und dessen Extension-Entwicklung einzuarbeiten. Leider stoße ich bereits beim Abtippen von einfachen Beispielen auf Probleme.

Nachdem das Helloworld Beispiel machbar war, habe ich aus dem “Magento - Handbuch für Entwickler” das 2. Praxisbeispiel abgeschrieben und wohl irgendwo einen Fehler gemacht, finde ihn jedoch nicht. Vielleicht kann jemand von euch mir weiterhelfen.

Die “Extension” besteht aus (lediglich) drei Dateien: Die Aktivierungs-xml mit dem Pfad “/app/etc/modules/Firma_MailTest.xml”:

<?xml version="1.0"?>
<config>
    <
modules>
        <
Firma_MailTest>
            <
active>true</active>
            <
codePool>local</codePool>
            <
depends>
                <
Mage_Core/>
            </
depends>
        </
Firma_MailTest>
    </
modules>
</
config>
Diese sagt, dass die Extension unter “/app/code/local/Firma/MailTest” liegt. Daraufhin wird die Datei “/app/code/local/Firma/MailTest/etc/config.xml” geöffnet, die Magento sagt, aus welchen Bestandteilen die Erweiterung besteht. In ihr steht:

<?xml version="1.0"?>
<config>
    <
modules>
        <
Firma_MailTest>
            <
version>0.1.0</version>
        </
Firma_MailTest>
    </
modules>
    <global>
        <
models>
            <
mailtest>
                <class>
Firma_MailTest_Model</class>
            </
mailtest>
        </
models>
    </global>
    <
frontend>
        <
events>
            <
sales_order_place_after>
                <
observers>
                    <
mailtest>
                        <
type>singleton</type>
                        <class>
mailtest/observer</class>
                        <
method>salesOrderPlaceAfter</method>
                    </
mailtest>
                </
observers>
            </
sales_order_place_after>
        </
events>
    </
frontend>
</
config>

Diese Datei sagt Magento, dass im Ordner “/app/code/local/Firma/MailTest/Model/” ein Observer enthalten ist. Bei dem Event “Sales_Order_Place_After” (also nach einer Bestellung) wird der Observer der Extension aktiviert, welcher die Methode salesOrderPlaceAfter ausführt. Meine Frage: Woher weiß Magento, wo die “Observer.php” zu finden ist? Hier steht ja “<class>mailtest/observer</class>”, sollte das nicht eher “<class>Firma_Mailtest_Model_Observer.php</class>” oder so heißen?

Jedenfalls stehen in der “/app/code/local/Firma/MailTest/Model/Observer.php” folgende Zeilen drinnen:

<?php
class Firma_MailTest_Model_Observer
{
    
public function salesOrderPlaceAfter($observer)
    
{
        $order 
$observer->getEvent()->getOrder();
        
$emailAddress Mage::getStoreConfig('trans_email/ident_general/email'$order->getStoreId());
        
$mail Mage::getModel('core/email')->setSubject('neue Bestellung')->setFrontEmail($emailAddress)->setToEmail($emailAddress)->setBody('neue Bestellung ' $order->getRealOrderId())->send();
    
}
}

Dies alles in die jeweiligen Ordner reingeschoben, Server (ja sogar Rechner) neu gestartet, Bestellung im Frontend gemacht - aber leider nicht die Mail bekommen, die ich oben versenden wollte. Was mache ich falsch? Ich habe den Eindruck, also würde meine Extension gar nicht geladen werden.

Hat jemand einen Tipp für mich?

Im Anhang befindet sich nochmal die Dateistruktur. ich verwende Magento 1.7.0.0 und als Server XAMPP für Mac OS X 1.7.3.

Image Attachments
Bildschirmfoto 2012-06-14 um 09.35.47.png
 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top