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.
How to find conflicting extensions
- You need to go through all of the extensions found in
app/code/community
andapp/code/local
. - For each extension, go to the
etc
directory of the extensions directory and find the extensionsconfig.xml
- 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).
http://www.maisondulogiciel.com/english/magento/magento-extension-conflict.html
Any extension using its own Customer Model
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>
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.