Magento模型覆盖自定义模块

时间:2015-10-17 13:32:27

标签: magento

我开始使用Magento(1.9)CE。我正在尝试编写一个小模块来修改两个模型的行为:

  1. Mage_Sales_Model_Quote
  2. Mage_Sales_Model_Quote_Address
  3. 我创建了扩展这些类的MyCompany_Sales_Model_Quote和MyCompany_Sales_Model_Quote_Address类。

    我的文件夹结构如

    MyCompany
     -> etc
       -> config.xml
     ->Sales
      -> Model
        -> Quote.php
        -> Quote
           -> Address.php
    

    我已经确认:

    1. 我的模块 - MyCompany_Sales - 显示在管理员门户中(管理员 - >系统 - >配置 - >高级 - >高级)

    2. 如果我不编写自定义模块并只是从Magento核心复制这些文件并复制到Local-> Mage-> Sales->模型下,则更改似乎有效。但我想保留一个模块,只改变我想要的行为。

    3. 我必须得出结论,主要问题是系统没有正确地启动我的新类。这是我的配置xml来覆盖这些类:

      < ?xml version="1.0"?>
      <config>
          <modules>
              <MyCompany_Sales>
                  <version>0.1.0</version>
              </MyCompany_Sales>
          </modules>
          <global>
             <models>
                <sales>
                    <rewrite>
                        <quote>MyCompany_Sales_Model_Quote</quote>
                        <quote_address>MyCompany_Sales_Model_Quote_Address</quote_address>
                    </rewrite>
                </sales>
             </models>
          </global>
      </config>
      

      关于我可能做错的任何指示都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我认为您的目录结构存在问题。您的目录结构应如下所示:

MyCompany (Namespace)
    -Sales (Modulename)
        - etc (Directory)
            -config.xml (Configuration File)
        - Model(Directory)
            -Quote.php(File)
            -Quote(Directory)
                -Address.php(File)