Reputation: 465
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
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