2013-06-05 28 views
5

私はmagentoshopを使ってページにアクセスします。 内の非オブジェクトのメンバ関数のgetId()へ非オブジェクトのgetID()

コール/xxxxx/app/code/core/Mage/Catalog/Model/Product/Type/Configurable/Price.php上:私はこれにErrorMessageを取得します行

これは、getTotalConfigurableItemsPriceという関数の一部です。

そして、それは言う:: それはforeachの中にあります

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

と属性のものが問題です。 私は$ attribute-> getProductAttribute() 上)(のvar_dumpを試してみました($属性)上のvar_dump NULLを受け取ったが、属性と間違って何すなわち

["_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 = $attribute->getProductAttribute()->getId(); 

$attributeId = 1234; 

エラーがなくなって、私は真の値を必要とします。..

+0

マゼンタ製品の属性セット機能を拡張する拡張機能をインストールしましたか? – Mufaddal

+0

いいえ、その方法の拡張はインストールされていません – user1697061

+1

あなたの質問を解決するので、以下の回答を受け入れる必要があります。 – zigojacko

答えて

0

私はMagentoのをアップグレード持っていたとき、私は、あなたのような同じ問題を抱えています私の拡張の1つは属性セット機能を拡張しているので、このエラーが出ます。

最後にこのクエリを実行しました。

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 | 
+--------------+----------------+ 

あなたがしなければならないのは、カタログにあなたの管理者に行くです - 属性 - 属性セットを管理し、問題のある製品とREINDEXの属性セットに属性を追加します。

+0

大きい見つける。あなたの答えは、私たちが店舗で経験しているのと同じシナリオを解決することを可能にしましたが、(色だけでなく)幅広い属性を持っています。 – zigojacko

関連する問題