Search code examples
eventsmagentoobservers

magento unable to load the observe class


when i try to write the observer for the checkout_type_onepage_save_order event like following

<events>
    <checkout_type_onepage_save_order>
        <observers>
            <Appeal_Consignor_Model_Observer>
                <type>singleton</type>
                <class>consignor/observer</class>
                <method>savedata</method>
            </Appeal_Consignor_Model_Observer>
        </observers>
    </checkout_type_onepage_save_order>
</events>

above code i tried in frontend as well as global.

Even i tried following as well.

<events>
    <checkout_type_onepage_save_order>
        <observers>
            <Appeal_Consignor_Model_Observer>
                <type>singleton</type>
                <class>Appeal_Consignor_Model_Observer</class>
                            <method>savedata</method>
            </Appeal_Consignor_Model_Observer>
        </observers>
    </checkout_type_onepage_save_order>
</events>

full config.xml file is as follows

<?xml version="1.0"?>
<config>
    <modules>
        <Appeal_Consignor>
            <version>1.0.1</version>
        </Appeal_Consignor>
    </modules>

    <global>
        <models>
            <consignor>
                <class>Appeal_Consignor_Model</class>
            </consignor>
        </models>
        <resources>
            <consignor_setup>
                <setup>
                    <module>Appeal_Consignor</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </consignor_setup>
            <consignor_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </consignor_write>
            <consignor_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </consignor_read>
        </resources>
        <helpers>
            <consignor>
                <class>Appeal_Consignor_Helper</class>
            </consignor>
        </helpers>
    </global>


    <frontend>
        <routers>
            <consignor>
                <use>standard</use>
                <args>
                    <module>Appeal_Consignor</module>
                    <frontName>consignor</frontName>
                </args>
            </consignor>
        </routers>


        <events>
            <checkout_type_onepage_save_order>
                <observers>
                    <Appeal_Consignor_Model_Observer>
                        <type>singleton</type>
                        <class>Appeal_Consignor_Model_Observer</class>
                        <method>savedata</method>
                    </Appeal_Consignor_Model_Observer>
                </observers>
            </checkout_type_onepage_save_order>

        </events>


    </frontend>
    <adminhtml>
        <layout>
            <updates>
                <consignor>
                    <file>consignor.xml</file>
                </consignor>
            </updates>
        </layout>


    </adminhtml>

</config>

yet the following error is coming. I cleared cache 1000 times, deleted var cache folder file manually as well.

2012-07-23T11:04:09+00:00 ERR (3): Warning: include(Appeal_Consignor_Model_Observer.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory  in E:\xampp\htdocs\magento\includes\src\Varien_Autoload.php on line 93
2012-07-23T11:04:09+00:00 ERR (3): Warning: include() [<a href='function.include'>function.include</a>]: Failed opening 'Appeal_Consignor_Model_Observer.php' for inclusion (include_path='E:\xampp\htdocs\magento\includes\src;.;E:\xampp\php\PEAR')  in E:\xampp\htdocs\magento\includes\src\Varien_Autoload.php on line 93

Solution

  • This is what I am using to run the observer when a new product is added to the cart:

    etc\config.xml

      <?xml version="1.0"?>
        <config>
            <modules>
                <Iln_Cartvalidation>
                    <version>0.1.0</version>
                </Iln_Cartvalidation>
            </modules>
            <global>
                <helpers>
                    <cartvalidation>
                        <class>Iln_Cartvalidation_Helper</class>
                    </cartvalidation>
                </helpers>
            </global>
            <frontend>
                <events>
                    <checkout_cart_product_add_after>
                        <observers>
                            <Iln_Cartvalidation_Model_Observer>
                                <type>singleton</type>
                                <class>Iln_Cartvalidation_Model_Observer</class>
                                <method>Mytestmethod</method>
                            </Iln_Cartvalidation_Model_Observer>
                        </observers>
                    </checkout_cart_product_add_after>
                </events>
            </frontend>
        </config>
    

    Helper\Data.php

        <?php
        class Iln_Cartvalidation_Helper_Data extends Mage_Core_Helper_Abstract {
        } 
    

    Model\observer.php

    <?php
    class Iln_Cartvalidation_Model_Observer {
    
        public function Mytestmethod($observer) {
            $event = $observer->getEvent(); //Fetches the current event
            $product = $event->getProduct();
            $eventmsg = "Current Event Triggered : " . $event->getName() . "Currently Added Product : " . $product->getName();
            //Adds Custom message to shopping cart
            echo Mage::getSingleton('checkout/session')->addSuccess($eventmsg);
            //Your Custom Logic Here
            print_r($product);
        }
    
    }