Глядя на ваш код, загруженный с http://goo.gl/O7dBy, вы определяете:
<events>
<add_to_cart_after>
<observers>
<add_to_cart_after>
<class>dispatcher/observer</class>
<method>hookToAddToCartAfter</method>
</add_to_cart_after>
</observers>
</add_to_cart_after>
</events>
и определите псевдоним модели dispatcher
как:
<models>
<dispatcher>
<class>MyPackage_Crossdata_Dispatcher_Model</class>
</dispatcher>
</models>
Полученное имя класса будет MyPackage_Crossdata_Model_Dispatcher_Model_Observer
, но вашему классу-наблюдателю будет присвоено имя MyPackage_Crossdata_Dispatcher_Model_Observer
, при этом отсутствует Model
между Crossdata
и Dispatcher
.
Я бы порекомендовал отбросить полное определение dispatcher
моделей выше и использовать только псевдоним другой модели crossdata
, который вы уже определили в config.xml
:
<crossdata>
<class>MyPackage_Crossdata_Model</class>
<resourceModel>crossdata_mysql4</resourceModel>
</crossdata>
Затем измените определение события на:
<add_to_cart_after>
<class>crossdata/observer</class>
<method>hookToAddToCartAfter</method>
</add_to_cart_after>
Создайте файл /app/code/local/MyPackage/Crossdata/Model/Observer.php
и определите в нем свой класс наблюдателя:
class MyPackage_Crossdata_Model_Observer
{
public function hookToAddToCartAfter($observer)
{
// your observer code
}
}