4

saveRowメソッド fromを使用して構成可能な製品をヒットすると、次のエラーが発生します/app/code/local/Mage/Catalog/Model/Convert/Adapter/Productimport.php

[05-Jul-2011 18:12:32] PHP Fatal error:  Call to undefined method Mage_Catalog_Model_Product_Type_Simple::getConfigurableAttributesAsArray() in /home/gp/public_html/app/code/local/Mage/Catalog/Model/Convert/Adapter/Productimport.php on line 107

私の問題は、おそらくオンラインで遭遇した他の問題とは少し異なりますsaveRow().xmlフィードによってサプライヤーからダウンロードされた製品のリストを構築および維持している独自のスクリプトから呼び出してから、使用する前に一時データベースに呼び出しています. magentoを使用して、サイトのカタログにそれらを追加または更新します。

require_once($_SERVER['DOCUMENT_ROOT']."/app/code/local/Mage/Catalog/Model/Convert/Adapter/Productimport.php");
$MageProducts = new Mage_Catalog_Model_Convert_Adapter_Productimport();
...
...
foreach($products as $product) {
    $result = $MageProducts->saveRow($product);
}

構成可能な製品を初めてヒットしたときにこのエラーが発生しますが、すぐに更新を押すと、スクリプトはその製品を通過して最後まで実行され、失敗することなく、途中で多くの単純な/構成可能な製品セットを渡します。

ProductImport.php の 107 行目はこの行です

$cspa  = $product->getTypeInstance()->getConfigurableAttributesAsArray($product);

何らかの理由で$product->getTypeInstanceが戻ってきMage_Catalog_Model_Product_Type_Simpleますが、セッションで初めてですか?!

print_r($product->getTypeInstance())その行の直前に追加すると、構成可能な製品について次のようになります

Mage_Catalog_Model_Product_Type_Simple Object ( [_product:protected] => Mage_Catalog_Model_Product Object ( [_cacheTag:protected] => catalog_product [_eventPrefix:protected] => catalog_product [_eventObject:protected] => product [_canAffectOptions:protected] => [_typeInstance:protected] => Mage_Catalog_Model_Product_Type_Simple Object *RECURSION* [_typeInstanceSingleton:protected] => Mage_Catalog_Model_Product_Type_Configurable Object ( [_usedProductAttributeIds:protected] => _cache_instance_used_product_attribute_ids....

明らかに間違っているのは…

cron を介してスクリプトを使用できるようにしたいのですが、このエラーが原因でそれができなくなっているため、どうしても修正の助けが必要です。誰かアドバイスをいただけますか?

4

2 に答える 2

6

この前に:

$product->getTypeInstance()->getConfigurableAttributesAsArray($product);

確認してください$product->isConfigurable();。そうである場合は、次のみを実行します。

$product->getTypeInstance()->getConfigurableAttributesAsArray($product);
于 2015-02-10T13:03:21.550 に答える