2013-06-05 47 views
5

當我使用magentoshop訪問頁面時;我得到這個errormessage的:getID()在非對象上

調用一個成員函數的getId()一個非對象在/xxxxx/app/code/core/Mage/Catalog/Model/Product/Type/Configurable/Price.php上line

我朝那條線前進,它是一個名爲getTotalConfigurableItemsPrice的函數的一部分。 這是在foreach:

它說:

foreach ($attributes as $attribute) { 
    $attributeId = $attribute->getProductAttribute()->getId(); 

和屬性的東西的問題。 我試圖在$一個的var_dump()屬性 - > getProductAttribute() 和收到NULL 上($屬性)一個顯示的var_dump即

["_data":protected]=> 
    array(5) { 
    ["product_super_attribute_id"]=> 
    string(4) "3845" 
    ["product_id"]=> 
    string(8) "10001563" 
    ["attribute_id"]=> 
    string(3) "135" 
    ["position"]=> 
    string(1) "0" 
    ["product_attribute"]=> 
    NULL 
    } 

有什麼不好的屬性,我該如何解決? 如果我說:的

$attributeId = 1234; 

代替

$attributeId = $attribute->getProductAttribute()->getId(); 

錯誤走了,但我需要真正的價值..

+0

您是否安裝了擴展magento產品屬性集功能的擴展? – Mufaddal

+0

不,沒有安裝這種方式的擴展 – user1697061

+1

你應該接受下面的答案,因爲它可以解決你的問題。 – zigojacko

回答

0

我有一個像你一樣的問題,當我不得不升級我的Magento,我的一個擴展是擴展屬性集功能,所以它給了我這個錯誤。

因此,最後我運行了這個查詢。

update eav_entity_type set additional_attribute_table='catalog/eav_attribute',entity_attribute_collection='catalog/product_attribute_collection' where entity_type_id=4;

我的問題得到解決。

希望這會幫助你。

+0

感謝您的回答,但我只是得到: 受影響的行:0 所以沒有任何改進:/ – user1697061

9

我有同樣的問題,並找到它的解決方案。

問題描述:

的問題影響了與屬性設置「默認」和配置屬性「顏色」配置的產品。基於「Default」創建了一個新的屬性集,並且從該屬性集中移除了屬性顏色。之後通過一些第三方擴展,一些可配置產品的屬性集被更改爲新的。這是造成這個問題的原因。

解決方案:

屬性「顏色」添加設置有問題的產品的屬性。

方法:

給定產品的配置屬性都存儲在表catalog_product_super_attribute。使用產品的ID可以找出哪些屬性是。

mysql> select * from catalog_product_super_attribute where product_id=1826; 
+----------------------------+------------+--------------+----------+ 
| product_super_attribute_id | product_id | attribute_id | position | 
+----------------------------+------------+--------------+----------+ 
|      1826 |  1826 |   92 |  0 | 
|      2683 |  1826 |   209 |  0 | 
+----------------------------+------------+--------------+----------+ 
mysql> select attribute_id,attribute_code from eav_attribute where (attribute_id=92 or attribute_id=208); 
+--------------+----------------+ 
| attribute_id | attribute_code | 
+--------------+----------------+ 
|   92 | color   | 
|   208 | color_mutsy | 
+--------------+----------------+ 

所有你所要做的就是去你的管理員目錄 - 屬性 - 管理屬性集和屬性添加到設置有問題的產品,並重新索引的屬性。

+0

偉大的發現。您的回答讓我可以解決我們在商店中遇到的同一場景,但具有廣泛的屬性(不僅僅是顏色)。 – zigojacko

相關問題