我正在嘗試編寫一個觀察者,在下訂單時將導出訂單數據。我以前沒有寫過任何模塊。基於這篇文章我的實現:http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/customizing_magento_using_event-observer_methodmagento sales_order_place_after觀察員
到目前爲止我只是試圖觸發一些虛擬代碼寫入文件。我沒有看到我的日誌中顯示的任何內容,並且該文件未被修改。 apache用戶擁有該目錄的權限。我已經禁用了Magento設置中的配置緩存。我對一些命名約定有點困惑;我只是試圖效仿這個例子。任何人都知道我要去哪裏錯了?
在Magento /應用的/ etc /模塊/Feed.xml:
<?xml version="1.0"?>
<config>
<modules>
<Feed_Sales>
<codePool>local</codePool>
<active>true</active>
</Feed_Sales>
</modules>
</config>
在Magento /應用程序/代碼/本地/飼料/銷售的/ etc/config.xml中
:
<?xml version="1.0"?>
<config>
<global>
<models>
<feedsales>
<class>Feed_Sales_Model</class>
</feedsales>
</models>
<events>
<sales_order_place_after>
<observers>
<feed_sales_order_observer>
<type>singleton</type>
<class>sales/order_observer</class><!-- I've also tried Feed_Sales_Model_Order_Observer here -->
<method>export_new_order</method>
</feed_sales_order_observer>
</observers>
</sales_order_place_after>
</events>
</global>
</config>
在Magento /應用/代碼/本地/供稿/銷售/型號/訂購/ Observer.php:
<?php
class Feed_Sales_Model_Order_Observer
{
public function __contruct()
{
}
/**
* Exports new orders to an xml file
* @param Varien_Event_Observer $observer
* @return Feed_Sales_Model_Order_Observer
*/
public function export_new_order($observer)
{
Mage::log("reached export_new_order");
try
{
$dumpFile = fopen('/home/jorelli/new_orders/testdump', 'w+');
fwrite($dumpFile, 'this is a test!');
}
catch (Exception $e)
{
Mage::log("order export failed.\n");
}
return $this;
}
}
?>
在Debian萊尼與Apache2的Magento的1.4,如果它應該的問題,對於任何r陳奕迅。
感謝您的建議。沒有注意到任何更改: - \ – jorelli 2010-07-01 14:24:01
在查找更改之前,請確保清除了配置高速緩存。在每次頁面加載時都不讀取XML。 – 2010-07-01 14:53:59
是的,我只是暫時完全禁用配置緩存。這是值得一提的,但^ _^ 記錄,你是完全正確的關於特定的類別。 'feedsales/order_observer'起作用。使用'Feed_Sales_Model_Order_Observer'的文字類名稱的 也適用。 但'sales/order_observer'不起作用。 – jorelli 2010-07-01 15:30:04