2013-01-23 47 views
0

收到以下錯誤在我的控制檯試圖導入使用CSV 產品我使用Magento的核心導入功能Magento的致命錯誤調用一個成員函數的getName(),而進口

<b>Fatal error</b>: Call to a member function getName() on a non-object in <b>/home/magentosite/public_html/store/app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php</b> on line <b>377</b><br /> 

一個非對象功能在product.php文件中,第377行沒有更改核心文件

/** 
* Initialize categories text-path to ID hash. 
* 
* @return Mage_ImportExport_Model_Import_Entity_Product 
*/ 
protected function _initCategories() 
{ 
    $collection = Mage::getResourceModel('catalog/category_collection')->addNameToResult(); 
    /* @var $collection Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection */ 
    foreach ($collection as $category) { 
     $structure = explode('/', $category->getPath()); 
     $pathSize = count($structure); 
     if ($pathSize > 2) { 
      $path = array(); 
      for ($i = 2; $i < $pathSize; $i++) { 
       $path[] = $collection->getItemById($structure[$i])->getName(); ---> **This is line no 377** 
      } 
      $this->_categories[implode('/', $path)] = $category->getId(); 
     } 
    } 
    return $this; 
} 

請問任何人都可以知道這個解決方案嗎?我在Magento的1.6.2

:(

+0

$結構的'值[$ i]'應指向一個有效的'entity_id'。我的猜測是一個非 - 分別存在'catalog_category_entity.entity_id'或'catalog_category_flat_store_ .entity_id'。 –

+0

post som來自您用於導入的csv文件的e行。 – FlorinelChis

+0

@JürgenThelen是的,你是對的我手動添加表catalog_category_flat_store_2,3,4,因爲這些表都失蹤了,我們面臨reindexing問題後,添加此表reindexing工作正常,但進口顯示錯誤現在要做什麼現在請你幫我這個表關係? –

回答

0

的還情況下,如果你沒有類別在註冊表中,得到它的名字那麼這個錯誤也發生像你直接訪問產品鏈接並嘗試獲取類別通過註冊頁面上出現此錯誤。 解決方案,以檢查類別存在。

if (Mage::registry('current_category')) { 
     $categoryName = Mage::registry('current_category')->getName(); 
    } 
    else { 
     $categoryIds = $_product->getCategoryIds(); 
     if (count($categoryIds)) { 
      $firstCategoryId = $categoryIds[0]; 
      $_category = Mage::getModel('catalog/category')->load($firstCategoryId); 
      $categoryName = $_category->getName(); 
     } 
    } 
相關問題