2012-12-07 214 views
1

当我尝试从管理面板创建可配置产品时,出现以下错误。致命错误:调用非对象上的成员函数setProductFilter()

致命错误:调用一个成员函数setProductFilter()非对象

我不是什么特别的事情上。我刚刚进入“添加产品”并选择“默认”属性集,并从下拉列表中选择“可配置产品”,然后点击继续。但我无法创建可配置的产品。

它显示在下面的行错误

\程序\代码\核心\法师\目录\型号\产品\型号\ Configurable.php上线294

谁能帮我在这请?

+0

你有任何第三方的模块安装了可能改变产品节能的方法呢? – sulman

+0

尝试禁用所有自定义模块(如果有),以查看其中一个是否导致此问题 –

+0

是的。我已经安装了一个多厂商插件。让我禁用该检查。但在我的本地机器Windows中,我收到了这个错误。但在服务器Linux中它工作正常!任何猜测? –

回答

0

近2年,我刚刚在Magento 1.9.0.1遇到了同样的(当然,一个非常类似)的问题。我找到了原因,结果令人惊讶。

注:我使用反斜线在我的文件路径,因为我使用Windows。我看到OP也是。以防万一有人指出我的“错误”。 :O)

\程序\代码\核心\法师\目录\型号\产品\型号\上线294 Configurable.php看起来是这样的:

return Mage::getResourceModel('catalog/product_type_configurable_attribute_collection')->setProductFilter($this->getProduct($product)); 

这是应该做以下3事情:

  1. 负载使用$this->getProduct($product)
  2. 生成使用Mage::getResourceModel('catalog/product_type_configurable_attribute_collection')
  3. 调用资源对象的产品对象该资源对象的setProductFilter方法, 传递产品对象

它的失败在第2步,因为Mage::getResourceModel('catalog/product_type_configurable_attribute_collection')尝试使用文件\程序\代码\核心\法师\目录\型号\资源\产品\型号\可配置的\ Attribute \ Collection.php,在我的情况下至少不存在。

确切的说,该文件是存在的,但它具有扩展名错误 - .PH而不是.PHP。看起来像Magento CE 1.9.0.1是这样发货的。也许其他版本也会以同样的方式受到影响。

Magento的CE 1.9.0.1是在3种格式:的.zip,.tar.gz和.tar.bz2格式。我将.tar.gz版本下载到Windows 8.1系统中,并使用GnuWin的Windows gzip和Windows的tar(两个命令行实用程序)将其解压缩。也许有些东西因为我选择下载和解压的特定方式和/或因为我使用的操作系统而被损坏。或者也许这个文件只是在源头上被错误命名。无论哪种方式,重命名为.php解决了我的问题。

希望这可以帮助别人 - 我可以看到一个热门的话题,这是多大:OD

0
If your Problem is - magento Call to a member function setProductFilter() on a non-object in app/code/core/Mage/Catalog/Model/Product/Type/Configurable.php on line 294 


Go to - 
app/code/core/Mage/Catalog/Model/Resource/Product/Type/Configurable/Attribute/ 

And see there are the Collection.php file exist or not. 
I thing there are Collection.php file exist but the file extension is not correct format. 

You can change the extension only, Make it Collection.php 
相关问题