Magento Observer没有被要求支付订单付款

时间:2011-08-04 16:12:24

标签: xml events magento observer-pattern

UPDATED 05/08/2011 *

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

我正在使用Magento 1.5.1.0并查看了事件钩子cheatsheat @ http://www.nicksays.co.uk/magento_events_cheat_sheet/我可以看到我要挂钩的事件是

  

'sales_order_payment_pay'

发送
'app/code/local/Mage/Sales/Model/Order/Payment.php'.

因为我已经覆盖核心文件夹中的文件

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

  1. app / etc / modules / PackageName_ModuleName.xml - >包含说明可以找到模块的位置的xml文件

  2. app / code / local / PackageName / ModuleName / etc / config.xml - >哪一个     将观察者附加到已发送的'sales_order_payment_pay'事件

  3. app / code / local / PackageName / ModuleName / Model / Observer.php - >包含一个类,该类包含在触发sales_order_payment_pay事件时由config.xml调用的方法。

  4. 以下是我创建的文件和目录中的文件,代码将扩展为在触发'sales_order_payment_pay'时发送电子邮件,我只是在minuite进行调试。

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

    应用程序的/ etc /模块/ Juno_Sales.xml

    <?xml version="1.0"?>
    <config>
        <modules>
            <Juno_Finalise>
                <active>true</active>
                <codePool>local</codePool>
            </Juno_Finalise>
        </modules>
    </config>
    

    应用程序/代码/本地/朱诺/销售的/ 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 
            */
    
    
        }
    
    }
    
    ?>
    

    非常感谢任何帮助。

    非常感谢

    伊恩

1 个答案:

答案 0 :(得分:4)

您的班级Juno_Finalise_Model_Observer应为Juno_Finalise_Model_Order_Observer