0

I wanna update product attribute value whenever new product will be added from admin in Magento 1.8. i used event observers but nothing happen my observer method is not calling when new product added i used following code in config.xml

I tried below event in both global and admin section

<?xml version="1.0"?>

<config>
    <modules>
        <Nextgeni_MostLove>
            <version>0.1.0</version>
        </Nextgeni_MostLove>
    </modules>

     <global>
        <models>
            <mostlove>
                <class>Nextgeni_MostLove_Model</class>
                <resourceModel>mostlove_mysql4</resourceModel>
            </mostlove>
            <validationmodel>
                <class>Nextgeni_MostLove_Model</class>
            </validationmodel>
            <mostlove_mysql4>
                <class>Nextgeni_MostLove_Model_Mysql4</class>
                <entities>
                    <mostlove>
                        <table>most_love_product</table>
                    </mostlove>
                </entities>
            </mostlove_mysql4>
        </models>

        <helpers>
            <mostlove>
                <class>Nextgeni_MostLove_Helper</class>
                <!-- This will be the path of Helper Files -->
            </mostlove>
        </helpers>

        <blocks>
            <mostlove>
                <class>Nextgeni_MostLove_Block</class>
            </mostlove>
            <catalog>
                <rewrite>
                    <product_featured>Nextgeni_MostLove_Catalog_Block_Product_Featured</product_featured>
                </rewrite>
            </catalog>          
        </blocks>

         <resources>
            <mostlove_setup>
                <setup>
                    <module>Nextgeni_MostLove</module>
                    <class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </mostlove_setup>
            <mostlove_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </mostlove_write>
            <mostlove_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </mostlove_read>
        </resources>

        <events>
            <catalog_product_save_before>
                <observers>
                    <magedev_events_observer>
                        <type>singleton</type>
                        <class>Nextgeni_MostLove_Model_Observer</class>
                        <method>saveProductBefore</method>
                    </magedev_events_observer>
                </observers>
            </catalog_product_save_before>
        </events> 
    </global>

    <frontend>
        <routers>
            <mostlove>
                <use>standard</use>
                <args>
                    <module>Nextgeni_MostLove</module>
                    <frontName>mostlove</frontName>
                </args>
            </mostlove>
        </routers>

        <layout>
            <updates>
                <mostlove>
                    <file>mostlove.xml</file>
                </mostlove>
            </updates>
        </layout>
    </frontend>
    <default>
        <mostlove>
            <most_love_config>
                <showimage>1</showimage>    
                <displayText>Love</displayText>     
                <productLoveMin>0</productLoveMin>              
                <productLoveMax>0</productLoveMax>  
                <enableHeart>heart_icon.png</enableHeart>
                <disableHeart>heart_disable.png</disableHeart>
              </most_love_config>
        </mostlove>
    </default>

</config>

My Observer file code is

<?php
class Nextgeni_MostLove_Model_Observer
{



     public function catalog_product_save_before(Varien_Event_Observer $observer)
    {
        $product = $observer->getProduct();
        Mage::throwException(Mage::helper('adminhtml')->__('You totally failed at that.'));
        echo "<pre>"; print_r($product->getData()); exit;
    // do something here
    }

    public function applyAllRulesOnProduct($observer)
    {
        $product = $observer->getProduct();
        Mage::throwException(Mage::helper('adminhtml')->__('You totally failed at that.'));
        echo "<pre>"; print_r($product->getData()); exit;
    // do something here
    }
}
2
  • would you mind providing us with the whole thing please? as @Andreas von Studnitz suggested, we miss some of the xml part and we don't have your observer class either. Maybe you made a small typo in its name. Apr 30, 2014 at 13:38
  • hi i updated my config file code.
    – M_A_K
    May 1, 2014 at 4:48

1 Answer 1

0

You shouldn't have left out <!-- Some code here-->. I'd like to see the <models> part inside <global>. I expect the error to be there. Try to change <class>Nextgeni_MostLove/observer</class> to <class>Nextgeni_MostLove_Model_Observer</class> or whatever the class of your observer is.

Another potential error: the <events> part should be inside <global>, <frontend> (not in your case) or <adminhtml>.

1
  • Thanks there is class name issue my problem is solved. now i using this observer <events> <catalog_product_save_before> <observers> <magedev_events_observer> <type>singleton</type> <class>Nextgeni_MostLove_Model_Observer</class> <method>saveProductBefore</method> </magedev_events_observer> </observers> </catalog_product_save_before> </events>
    – M_A_K
    Apr 30, 2014 at 13:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.