I am trying to create an event dispatcher in Magento (which should be called after a product gets added to cart).
What I've done so far:
I Googled this and found this link. I followed the instructions specified in this link. I configured the config.xml file and created a Observer.php filder under mymodule/model folder. But, I can't see any result from this.
(The code for config.xml and Observer.php file that i used in my example can be found under http://goo.gl/O7dBy, my custom module name is Crossdata and package name is MyModule - am i doing it wrong?)
Any other link with simple helloworld event dispatcher example would be helpful.
Thanks, Balan
Looking at your code you define:
<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>
and define the model alias of dispatcher
as:
<models>
<dispatcher>
<class>MyPackage_Crossdata_Dispatcher_Model</class>
</dispatcher>
</models>
The resulting class name would be MyPackage_Crossdata_Model_Dispatcher_Model_Observer
, but your observer class is named MyPackage_Crossdata_Dispatcher_Model_Observer
, missing the Model
in between Crossdata
and Dispatcher
.
I'd recommend to drop the whole dispatcher
models definition above and only use the other model alias crossdata
which you've already defined in config.xml
:
<crossdata>
<class>MyPackage_Crossdata_Model</class>
<resourceModel>crossdata_mysql4</resourceModel>
</crossdata>
Then change the event definition to:
<add_to_cart_after>
<class>crossdata/observer</class>
<method>hookToAddToCartAfter</method>
</add_to_cart_after>
Create a file /app/code/local/MyPackage/Crossdata/Model/Observer.php
and define your observer class in it:
class MyPackage_Crossdata_Model_Observer
{
public function hookToAddToCartAfter($observer)
{
// your observer code
}
}