Xml 订单付款时未调用Magento Observer

Xml 订单付款时未调用Magento Observer,xml,events,magento,observer-pattern,Xml,Events,Magento,Observer Pattern,更新日期:2011年5月8日* 我是magento的新手,尝试创建一个在订单付款时触发的观察者。现在,观察员只是发送了一封电子邮件,但我将在未来对此进行扩展,但我需要让代码首先工作 我使用的是Magento 1.5.1.0,查看了事件挂钩cheatsheat@I可以看出我想要挂钩的事件是 “销售、订单、付款、付款” 那是从 'app/code/local/Mage/Sales/Model/Order/Payment.php'. 因为我已经在核心文件夹中重写了文件 在阅读了大量文章后,我了解到我

更新日期:2011年5月8日*

我是magento的新手,尝试创建一个在订单付款时触发的观察者。现在,观察员只是发送了一封电子邮件,但我将在未来对此进行扩展,但我需要让代码首先工作

我使用的是Magento 1.5.1.0,查看了事件挂钩cheatsheat@I可以看出我想要挂钩的事件是

“销售、订单、付款、付款”

那是从

'app/code/local/Mage/Sales/Model/Order/Payment.php'.
因为我已经在核心文件夹中重写了文件

在阅读了大量文章后,我了解到我需要创建3个文件,如下所示

app/etc/modules/PackageName_ModuleName.xml->包含说明在何处可以找到模块的xml文件

app/code/local/PackageName/ModuleName/etc/config.xml->which 将观察者附加到已发送的“销售\订单\付款\付款”事件

app/code/local/PackageName/ModuleName/Model/Observer.php->由一个类组成,该类包含一个在触发“销售\订单\付款\付款”事件时由config.xml调用的方法

这里是我创建的文件和文件所在的目录,当触发“销售\订单\付款\付款”时,代码将被扩展以不仅仅发送电子邮件,我只是在现场调试

我的代码如下,没有收到订单付款的电子邮件

app/etc/modules/Juno_Sales.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Juno_Finalise>
            <active>true</active>
            <codePool>local</codePool>
        </Juno_Finalise>
    </modules>
</config>
app/code/local/Juno/Sales/etc/config.xml

 <?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Juno_Sales>
                <version>0.1.0</version>
        </Juno_Sales>
    </modules>
    <global>
        <models>
            <junofinalise>
                <class>Juno_Sales_Model</class>
            </junofinalise>
        </models>          
        <events>
                <sales_order_payment_pay>
                <observers>
                        <juno_sales_order_observer>
                                <type>singleton</type>
                                <class>junofinalise/order_observer</class>
                                <method>finaliseJunoOrder</method>
                        </juno_sales_order_observer>
                </observers>
                </sales_order_payment_pay>     
        </events>
     </global>
</config>
app/code/local/Juno/Sales/Model/Order/Observer.php

 <?php
Mage::log(__FILE__);

class Juno_Finalise_Model_Order_Observer
{

    public function finaliseJunoOrder($event)
    {
         mail('ian.cassidy1404@gmail.com','call_juno_api','now call juno api');

        /*
                Sale has now been processed and is paid for, function needs modifying to call juno api 
        */


    }

}

?>
任何帮助都将不胜感激

非常感谢


伊恩

你们班的朱诺·最终定稿·模型·观察者应该是朱诺·最终定稿·模型·秩序·观察者。

你们班的朱诺·最终定稿·模型·观察者应该是朱诺·最终定稿·模型·秩序·观察者。

您好,我试过了,但还是没有运气,您认为这是因为观察者需要与发送事件i的文件位于同一目录中。观察者肯定不需要位于同一目录中。让我们确保正确加载您的模块。在管理中,转到系统>缓存管理,并在调试期间关闭所有缓存。安装并检查您的已列出。也可以转到系统>配置>开发人员并打开日志记录,然后在观察者文件的顶部放置Mage::log__;u file__;-查看var/log/system.log文件,查看该文件是否已被读取。很抱歉,1。我已关闭所有缓存2。模块已安装,显示3。没有向核心文件写入任何内容,因此我假设从未调用过observer。我已将上面的代码更新为现在的样子,我确实注意到dispatch事件来自app/code/local/Mage/Sales/Model/Order/Payment.php,它覆盖了核心文件。这可能是它不起作用的原因吗?感谢您的帮助,我看到您已将Finalize的一些实例更改为Sales。记住在任何地方都要这样做,包括类名,类名必须与两个XML文件中的路径名和模块名相匹配。我从来不知道事件失败仅仅是因为它是从本地目录发送的,重写应该没有任何效果。您是否尝试过在您认为事件发生的位置放置断点或其他Mage::log?您好,我已经尝试过了,但仍然没有成功,您认为这是因为观察者需要与发送事件i的文件位于同一目录中。观察者肯定不需要位于同一目录中。让我们确保正确加载您的模块。在管理中,转到系统>缓存管理,并在调试期间关闭所有缓存。安装并检查您的已列出。也可以转到系统>配置>开发人员并打开日志记录,然后在观察者文件的顶部放置Mage::log__;u file__;-查看var/log/system.log文件,查看该文件是否已被读取。很抱歉,1。我已关闭所有缓存2。模块已安装,显示3。没有向核心文件写入任何内容,因此我假设从未调用过observer。我已将上面的代码更新为现在的样子,我确实注意到dispatch事件来自app/code/local/Mage/Sales/Model/Order/Payment.php,它覆盖了核心文件。这可能是它不起作用的原因吗?感谢您的帮助,我看到您已将Finalize的一些实例更改为Sales。记住在任何地方都要这样做,包括类名,类名必须与两个XML文件中的路径名和模块名相匹配。我从来不知道事件失败仅仅是因为它是从本地目录发送的,重写应该没有任何效果。您是否尝试过将断点或另一个Mage::log放置在您认为事件发生的位置?