SandyK
SandyK

Reputation: 465

Mage registry key “_singleton/ Observer” already exists

Getting the error Mage registry key "_singleton/Mynamepsace_Dealers_Model_Observer" already exists when admin creates new order. In my config.xml I didn't find any error. I checked lot of posts regarding this issue, but did not trace the solution. Here is my config.xml -

<config>
    <modules>
        <Mynamespace_Dealers>
            <version>1.4.0</version>
        </Mynamespace_Dealers>
    </modules>
    <frontend>
        <routers>
            <dealers>
                <use>standard</use>
                <args>
                    <module>Mynamespace_Dealers</module>
                    <frontName>dealers</frontName>
                </args>
            </dealers>
        </routers>
        <layout>
            <updates>
                <dealers>
                    <file>dealers.xml</file>
                </dealers>
            </updates>
        </layout>
    </frontend>
    <admin>
        <routers>
            <dealers>
                <use>admin</use>
                <args>
                    <module>Mynamespace_Dealers</module>
                    <frontName>dealers</frontName>
                </args>
            </dealers>
        </routers>
    </admin>
    <adminhtml>
         <events>
            <sales_order_save_before>
                <observers>
                    <dealers_order_save_before>
                        <class>Mynamepsace_Dealers_Model_Observer</class>
                        <method>orderSaveBefore</method>
                    </dealers_order_save_before>
                </observers>
            </sales_order_save_before>
        </events>
        <menu>
            <dealers module="dealers">
                <title>Dealers</title>
                <sort_order>71</sort_order>
                <children>
                    <items module="dealers">
                        <title>Manage Dealers</title>
                        <sort_order>0</sort_order>
                        <action>dealers/adminhtml_dealers</action>
                    </items>
                </children>
            </dealers>
        </menu>
        <acl>
            <resources>
                <admin>
                    <children>
                        <system>
                            <children>
                                <config>
                                    <children>
                                        <dealers translate="title" module="dealers">
                                            <title>Dealers Section</title>
                                            <sort_order>50</sort_order>
                                        </dealers>
                                    </children>
                                </config>
                            </children>
                        </system>
                    </children>
                </admin>
            </resources>
        </acl>
        <layout>
            <updates>
                <dealers>
                    <file>dealers.xml</file>
                </dealers>
            </updates>
        </layout>
    </adminhtml>
    <global>
        <models>
            <dealers>
                <class>Mynamespace_Dealers_Model</class>
                <resourceModel>dealers_mysql4</resourceModel>
            </dealers>
            <dealers_mysql4>
                <class>Mynamespace_Dealers_Model_Mysql4</class>
                <entities>
                    <order><table>sales_order</table></order>
                </entities>
            </dealers_mysql4>
        </models>
        <resources>
            <dealers_setup>
                <setup>
                    <module>Mynamespace_Dealers</module>
                    <class>Mage_Sales_Model_Mysql4_Setup</class>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </dealers_setup>
            <dealers_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </dealers_write>
            <dealers_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </dealers_read>
        </resources>
        <blocks>
            <dealers>
                <class>Mynamespace_Dealers_Block</class>
            </dealers>
        </blocks>
        <helpers>
            <dealers>
                <class>Mynamespace_Dealers_Helper</class>
            </dealers>
        </helpers>
    </global>
</config>

and here is my observer class-

<?php

class Mynamepsace_Dealers_Model_Observer
{
    public function orderSaveBefore()
    {
        echo "I am here"; exit;
        $order = $observer->getEvent()->getOrder();
    }
}

Upvotes: 1

Views: 3525

Answers (1)

Girish Hosamani
Girish Hosamani

Reputation: 1203

Replace this code :

<events>
        <sales_order_save_before>
            <observers>
                <dealers_order_save_before>
                    <class>Mynamepsace_Dealers_Model_Observer</class>
                    <method>orderSaveBefore</method>
                </dealers_order_save_before>
            </observers>
        </sales_order_save_before>
  </events>

with

<events>
        <sales_order_save_before>
            <observers>
                <dealers_order_save_before>
                    <type>singleton</type>
                    <class>Mynamepsace_Dealers_Model_Observer</class>
                    <method>orderSaveBefore</method>
                </dealers_order_save_before>
            </observers>
        </sales_order_save_before>
</events>

in config.xml

Note that <dealers_order_save_before> this should be unique. Check that you have used this anywhere in the other module in the same application.

Cheers :-)

Upvotes: 2

Related Questions