2014-06-16 107 views
-1

我無法讓magento響應事件sales_order_save_after。我使用觀察員的事件。我很確定我的xml格式良好,因爲我爲此使用了Magicento。這是我的config.xml:Magento訂單觀察者未捕獲訂單

<?xml version="1.0"?> 
<config>  
     <modules>   
      <Magicento_Modul>    
       <version>0.1.0</version>   
      </Magicento_Modul>  
     </modules>  
     <global>   
     <models>    
       <magicento_modul> 
        <class>Magicento_Modul_Model</class> 
      <resourceModel>magicento_modul_resource</resourceModel> 
     </magicento_modul>    
     <magicento_modul_resource> 
      <class>Magicento_Modul_Model_Resource</class> 
      </magicento_modul_resource> 
     </models>   
     <blocks> 
      <magicento_modul> 
       <class>Magicento_Modul_Block</class> 
      </magicento_modul>   
     </blocks>   
     <helpers> 
      <magicento_modul> 
       <class>Magicento_Modul_Helper</class> 
      </magicento_modul>   
     </helpers>   
     <events>    
      <sales_order_save_after> 
       <observers> 
        <magicento_modul_model_observer> 
         <class>Magicento_Modul_Model_Observer</class> 
         <type>singleton</type> 
         <method>act</method> 
        </magicento_modul_model_observer> 
       </observers>    
      </sales_order_save_after> 
     </events>  
     </global> 
</config> 

,這是內部本地/ Magicento/MODUL /型號我的行爲方式/ Observer.php:

class Magicento_Modul_Model_Observer { 
    public function act($observer)  { 
    $order=$observer->getPayment()->getOrder(); 

    $sa=$order->getShippingAddress(); 

    $fp = fopen('fajl_iz_magicento_modula.txt', 'w'); 
    fwrite($fp, $sa);    

    } 
} 
+0

使用的代替。否則嘗試發送一個事件。 – aforankur

回答

1

它看起來像你有行爲問題的方法你的觀察者。事件sales_order_save_after不派遣付款對象,但訂單。因此,請校正您的行爲方式,如:

$order = $observer->getEvent()->getOrder() 

嘗試相反的

$order=$observer->getPayment()->getOrder(); 
+0

非常感謝,這很有幫助。無論如何,我結束了使用anothere事件:sales_order_payment_place_end –

+0

如果有幫助,接受答案 –

相關問題