Good morning everybody!
I have a problem trying to override the model app/code/core/Mage/Sales/Model/Order/Pdf/Total/Default.php with app/code/local/Mycompany/Sales/Model/Order/Pdf/Total/Default.php.
The thing is that when I rewrite the module but Magento is using the old module without override.
Here I upload the relevant codes:
etc/modules/Mycompany_Sales.xml
<?xml version="1.0"?> <config> <modules> <Mycompany_Sales> <active>true</active> <codePool>local</codePool> <depends> <Mage_Sales /> </depends> </Mycompany_Sales> </modules> </config>
app/code/local/Mycompany/Sales/etc/config.xml
<?xml version="1.0"?> <config> <modules> <Mycompany_Sales> <version>0.1.0</version> </Mycompany_Sales> </modules> <global> <models> <sales> <rewrite> <order_pdf_total_default>Mycompany_Sales_Model_Order_Pdf_Total_Default</order_pdf_total_default> </rewrite> </sales> </models> </global> </config>
code/local/Mycompany/Sales/Model/Order/Pdf/Total/Default.php
<?php
class Mycompany_Sales_Model_Order_Pdf_Total_Default extends Mage_Sales_Model_Order_Pdf_Total_Default
{
public function getFullTaxInfo()
{
...
}
}
I have compared it with some internet examples of models overriding and everything seems to be alright.
Anyone knows what can be the problem?
Thank you very much!!
[EDIT]
Finally I have solved the problem.
The thing is that there is a core file app/code/core/Mage/Tax/Model/Sales/Pdf/Grandtotal.php that overrides app/code/core/Mage/Sales/Order/Pdf/Total/Default.php so my extended class was in conflict with the tax class.
For solving it I rewrite my extension in order to extends app/code/core/Mage/Tax/Model/Sales/Pdf/Grandtotal.php.
The result is:
- etc/modules/Mycompany_Sales.xml
<?xml version="1.0"?> <config> <modules> <Mycompany_Sales> <active>true</active> <codePool>local</codePool> <depends> <Mage_Sales /> <Mage_Tax /> </depends> </Mycompany_Sales> </modules> </config>
app/code/local/Mycompany/Sales/etc/config.xml
<?xml version="1.0"?> <config> <modules> <Mycompany_Sales> <version>0.1.0</version> </Mycompany_Sales> </modules> <global> <models> <tax> <rewrite> <sales_pdf_grandtotal>Mycompany_Sales_Model_Order_Pdf_Total_Default</sales_pdf_grandtotal> </rewrite> </tax> </models> </global> </config>
code/local/Mycompany/Sales/Model/Order/Pdf/Total/Default.php
<?php
class Mycompany_Sales_Model_Order_Pdf_Total_Default extends Mage_Tax_Model_Sales_Pdf_Grandtotal
{
public function getFullTaxInfo()
{
...
}
}
2 Answers 2
I think it is not working because of sales group name. It conflicts with Magento core sales module.
Use below code
app/etc/modules/Mycompany_Customsales.xml
<?xml version="1.0"?>
<config>
<modules>
<Mycompany_Customsales>
<active>true</active>
<codePool>local</codePool>
<version>0.1.0</version>
</Mycompany_Customsales>
</modules>
</config>
app/code/local/Mycompany/Customsales/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Mycompany_Customsales>
<version>0.1.0</version>
</Mycompany_Customsales>
</modules>
<global>
<helpers>
<customsales>
<class>Mycompany_Customsales_Helper</class>
</customsales>
</helpers>
<models>
<customsales>
<class>Mycompany_Customsales_Model</class>
<resourceModel>customsales_mysql4</resourceModel>
</customsales>
<sales>
<rewrite>
<order_pdf_total_default>Mycompany_Customsales_Model_Sales_Order_Pdf_Total_Default</order_pdf_total_default>
</rewrite>
</sales>
</models>
</global>
</config>
Model: app/code/local/Mycompany/Customsales/Model/Sales/Order/Pdf/Total/Default.php
<?php
class Mycompany_Customsales_Model_Sales_Order_Pdf_Total_Default extends Mage_Sales_Model_Order_Pdf_Total_Default
{
//add your code
}
Hope it will helpful to you.
-
I tried to copy the code above and flush cache but nothing seems to change.Adrian Gallego Castellanos– Adrian Gallego Castellanos2016年03月16日 10:15:32 +00:00Commented Mar 16, 2016 at 10:15
-
Have you changed module group name ?Prashant Valanda– Prashant Valanda2016年03月17日 05:29:10 +00:00Commented Mar 17, 2016 at 5:29
To elaborate on what Adrian Gallego Castellanos edited into his post, I wasn't able to successfully override app/code/core/Mage/Tax/Model/Sales/Pdf/Grandtotal.php.
I had to extend app/code/core/Mage/Tax/Model/Sales/Pdf/Tax.php instead so I could override the getFullTaxInfo() function found in app/code/core/Mage/Sales/Order/Pdf/Total/Default.php.
Explore related questions
See similar questions with these tags.
get_class(Mage::getModel('sales/order_pdf_total_default'));?get_class(Mage::getModel('sales/order_pdf_total_default'));a weird thing happens, it shows my classMycompany_Sales_Model_Order_Pdf_Total_Defaultinstead the old one.