Known Conflicts of MasterPassword with other Magento Extensions

Due to the structure of Magento routing URL's to Models and Controllers, MasterPassword may get into conflict with other Magento Extensions from 3rd party providers when 2 or more Extensions try to rewrite Core Models or Routes to its own Models or Controllers.

EuVat may run into conflict with other Magento Extensions if these:

  • modify the Customer Object



The core models MasterPassword is extending, and which shall not be rewritten by other extensions to their own, are documented here...

Such conflicts are able to be resolved, our Support will give hints where to adapt your extensions to cooperate with MasterPassword. We have collected here conflicts we where made aware of by users of MasterPassword with the approach how to resolve these.

Always backup your Magento Installation before performing these code changes suggested here. Perform these suggested changes always in a Development or Testing environment before pushing them to your Production environment.



How to find conflicting extensions

  1. You need to go through all of the extensions found in app/code/community and app/code/local.
  2. For each extension, go to the etc directory of the extensions directory and find the extensions config.xml
  3. Look under <models> if there are the core models EuVAT requires are rewritten as shown here (the model rewrite required by EuVAT):
<customer>
	<rewrite>
	  <customer>Pisc_Masterpassword_Model_Customer_Customer</quote>
	</rewrite>
</sales>
  • If a extension is rewriting the models shown above, the conflicting extension is found (there might still be another extension create a similar conflict).



Alternatively use the following free extension to identify conflicting extensions:
http://www.maisondulogiciel.com/english/magento/magento-extension-conflict.html



Issue:
This extension is rewriting Mage/Customer/Model/Customer.php. If another extension is also rewriting this model MasterPassword may not function correctly.

Solution:
Derive all rewritten Customer Models from Pisc_Masterpassword_Model_Customer:

/* Change model dependancy from original */
class Some_Extension_Model_Customer_Customer extends Mage_Customer_Model_Customer
{
  ...
}
 
/* ...to be derived from the Masterpassword Customer Model: */
class Some_Extension_Model_Customer_Customer extends Pisc_Masterpassword_Model_Customer_Customer
{
  ...
}


Then in the config.xml file of the Masterpassword extension, comment out the rewriting of the core customer model to allow the other extension to inject its own customer model into the store configuration:

<global>
     ...
     <models>
     <!-- Use others extension customer model
          <customer>
	       <rewrite>
                      <customer>Pisc_Masterpassword_Model_Customer_Customer</customer>
	       </rewrite>
	  </customer>
     -->
     </models>
     ...
</global>

app/code/local/Pisc/Masterpassword/etc/config.xml


Be aware that whenever updating the Masterpassword extension you need to reapply the above change to its config.xml file. You may want to make a backup of this file in its folder for later retrieving this change after updating the Masterpassword extension.