扩展 Magento 模型不起作用


Extending Magento Model Not Working

我正在尝试扩展社区插件,对我来说一切看起来都是正确的,但我一定错过了一些东西,因为我的方法没有覆盖社区插件方法。

奇怪的是,我下载了模块冲突检测器,它说这是我的插件正在很好地扩展社区插件。

应用程序/等/模块/KNG_M2eProMods.xml

<?xml version="1.0"?>
<config>
    <modules>
        <KNG_M2eProMods>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Ess_M2ePro/>
            </depends>
        </KNG_M2eProMods>
    </modules>
</config>

app/code/local/KNG/M2eProMods/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <KNG_M2eProMods>
            <version>0.1.0</version>
        </KNG_M2eProMods>
    </modules>
    <global>
        <models>
            <M2ePro>
                <rewrite>
                    <magento_payment>KNG_M2eProMods_Model_Magento_Payment</magento_payment>
                    <magento_quote>KNG_M2eProMods_Model_Magento_Quote</magento_quote>
                    <magento_order>KNG_M2eProMods_Model_Magento_Order</magento_order>
                </rewrite>
            </M2ePro>
        </models>
    </global>
</config>

app/code/local/KNG/M2eProMods/Model/Magento/Order.php

class KNG_M2eProMods_Model_Magento_Order extends Ess_M2ePro_Model_Magento_Order
{
    private function placeOrder()
    {
     ......
    }
}

app/code/local/KNG/M2eProMods/Model/Magento/Payment.php

class KNG_M2eProMods_Model_Magento_Payment extends Ess_M2ePro_Model_Magento_Payment
{
    protected $_code = 'payment_profile';
}

app/code/local/KNG/M2eProMods/Model/Magento/Quote.php

class KNG_M2eProMods_Model_Magento_Quote extends Ess_M2ePro_Model_Magento_Quote
{
    private function initializeQuoteItems()
    {
     ......
    }
}

这是我尝试扩展的插件的配置.xml片段。app/code/community/Ess/M2ePro/etc/config.xml

......
<models>
        <M2ePro>
            <class>Ess_M2ePro_Model</class>
            ......
        </M2ePro>
        ......
</models>
......

以下是我要扩展的文件路径。

app/code/community/Ess/M2ePro/Model/Magento/Order.php
app/code/community/Ess/M2ePro/Model/Magento/Payment.php
app/code/community/Ess/M2ePro/Model/Magento/Quote.php

感谢您的帮助

您的配置.xml设置不正确。Magento在读取xml文件时区分大小写。所以你的配置.xml文件应该是这样的,

<?xml version="1.0"?>
<config>
  <modules>
    <KNG_M2eProMods>
      <version>0.1.0</version>
    </KNG_M2eProMods>
  </modules>
  <global>
    <models>
      <m2epromods>
        <class>KNG_M2eProMods_Model</class>
        <resourceModel>m2epromods_mysql4</resourceModel>
      </m2epromods>
            <m2epro>
                <rewrite>
                    <magento_order>KNG_M2eProMods_Model_M2ePro_Magento_Order</magento_order>
                </rewrite>
            </m2epro>
            <m2epro>
                <rewrite>
                    <magento_payment>KNG_M2eProMods_Model_M2ePro_Magento_Payment</magento_payment>
                </rewrite>
            </m2epro>
            <m2epro>
                <rewrite>
                    <magento_quote>KNG_M2eProMods_Model_M2ePro_Magento_Quote</magento_quote>
                </rewrite>
            </m2epro>
    </models>
  </global>
</config> 

如果您有任何疑问,请在此处发表评论。