试图在magento中创建新的产品类型,导致致命的错误

时间:2013-01-15 11:21:25

标签: php xml magento

我正在尝试在magento中创建新的产品类型,它在管理面板中显示创建新产品页面的产品类型选项,但是当我选择它并继续时,我会收到致命的错误:

  

致命错误:在非对象中调用成员函数setConfig()   /home/shop/public_html/shop/app/code/core/Mage/Catalog/Model/Product/Type.php   在第82行

第82行是:

$typeModel->setConfig($types[$typeId]);

模块配置文件(app / code / local / Pood / Toodep6hi / etc / config.xml):

<?xml version="1.0"?>
    <config>

        <modules>
            <Pood_Toodep6hi>
                <version>0.1.0</version>
            </Pood_Toodep6hi>
        </modules>
        <adminhtml>
            <translate>
                <modules>
                    <Pood_Toodep6hi>
                    <files>
                        <default>Pood_Toodep6hi.csv</default>
                    </files>
                    </Pood_Toodep6hi>
                </modules>
            </translate>
        </adminhtml>


        <global>

            <models>
                <Toodep6hi>
                    <class>Pood_Toodep6hi_Model</class>
                </Toodep6hi>
            </models>

            <catalog>
                <product>
                    <type>
                        <p6hitoode translate="label" module="Toodep6hi">
                            <label>Pohitoode</label>
                            <model>Toodep6hi/Product_Type_P6hitoode</model>
                            <price_model>Toodep6hi/Product_Price</price_model>
                            <index_data_retreiver>Toodep6hi/catalogIndex_Data_P6hitoode</index_data_retreiver>
                            <is_qty>1</is_qty>
                        </p6hitoode>
                    </type>
                </product>
            </catalog>



            <helpers>
                <Toodep6hi>
                    <class>Pood_Toodep6hi_Helper</class>
                </Toodep6hi>
            </helpers>
        </global>
    </config>

应用程序/代码/本地/普特/型号/产品/类型/ P6hitoode.php:

<?php
class Pood_Toodep6hi_Model_Product_Type_P6hitoode extends Mage_Catalog_Model_Toodep6hi_Type_Abstract
{
        const TYPE_P6HITOODE = "p6hitoode";
    public function isVirtual()
    {
        return true;
    }
}

我发现了一个小问题:http://www.magentocommerce.com/boards/viewthread/196886/#t248371,但它没有帮助。

非常感谢每一点帮助。 谢谢!

4 个答案:

答案 0 :(得分:2)

问题是区分大小写的

<model>Toodep6hi/product_type_p6hitoode</model>

应该是

<model>toodep6hi/product_type_p6hitoode</model>

答案 1 :(得分:0)

尝试从Mage_Catalog_Model_Product_Type_Virtual扩展Mage_Catalog_Model_Toodep6hi_Type_Abstract

答案 2 :(得分:0)

在这里使用小写:

<model>Toodep6hi/Product_Type_P6hitoode</model>

所以它将是:

<model>Toodep6hi/product_type_p6hitoode</model>

如果没有帮助,请尝试使用小写模型:

<models>
    <toodep6hi>
        <class>Pood_Toodep6hi_Model</class>
    </toodep6hi>
</models>
然后

和小写

<model>toodep6hi/product_type_p6hitoode</model>

答案 3 :(得分:0)

试试这个

                <type>
                    <p6hitoode translate="label" module="Toodep6hi">
                        <label>Pohitoode</label>
                        <model>Toodep6hi/product_type_p6hitoode</model>
                        <price_model>Toodep6hi/product_price</price_model>
                        <index_data_retreiver>Toodep6hi/catalogIndex_data_p6hitoode</index_data_retreiver>
                        <is_qty>1</is_qty>
                    </p6hitoode>
                </type>