2012-08-09 57 views
3

相當新的安裝Magento,產品設置等,並正準備導出產品的CSV,一旦我提交了正常的形式,錯誤「無效數據發送」我開始做一些調試來看看發生了什麼。第一站是exception.logMagento Community 1.7.0.2 - 出口產品CSV

Notice: Undefined index: in /app/code/core/Mage/ImportExport/Model/Export/Entity/Product.php on line 539' in /app/code/core/Mage/Core/functions.php:245 

功能多數民衆贊成造成問題的原因是:

/** 
* Update data row with information about categories. Return true, if data row was updated 
* 
* @param array $dataRow 
* @param array $rowCategories 
* @param int $productId 
* @return bool 
*/ 
protected function _updateDataWithCategoryColumns(&$dataRow, &$rowCategories, $productId) 
{ 
    if (!isset($rowCategories[$productId])) { 
     return false; 
    } 

    $categoryId = array_shift($rowCategories[$productId]); 
    $dataRow[self::COL_ROOT_CATEGORY] = $this->_rootCategories[$categoryId]; 
    if (isset($this->_categories[$categoryId])) { 
     $dataRow[self::COL_CATEGORY] = $this->_categories[$categoryId]; 
    } 

    return true; 
} 

對於somereason,$的categoryId不被設置爲$ rowCategories不是一個數組。

我已經重新運行索引管理只是incase,但在我看來,像類似的東西有什麼問題或什麼的。我知道一個快速解決方案是在繼續之前檢查$ categoryId是否已設置,但我想首先知道是什麼導致了錯誤。

+0

至於這個特定問題的根本原因,我不確定。但是,Dataflow對我來說工作得很好(而基本輸出不是)。 – 2012-09-17 09:03:11

回答

2

我有同樣的問題。由於我只是試圖導出一個產品 - 修復很容易:我只是將產品添加到一個類別中。

9

到從Magento的一個解決方法,你可以在
local/Mage/ImportExport/Model/Export/Entity/Product.php

和變線534複製的文件:

if (!isset($rowCategories[$productId])) { 
    return false; 
} 

if (!isset($rowCategories[$productId]) or empty($rowCategories[$productId])) { 
    return false; 
} 
1

似乎是壞了出口產品表格上的過濾器。簡單的定爲這,對Magento的1.7.0.2:

  1. 複製文件應用程序/代碼/核心/法師/ ImportExport /型號/ Export.php應用程序/代碼/本地/法師/ ImportExport/Model/Export.php
  2. 145行左右,在export()方法中,註釋掉if和else。表格上從來沒有過濾器。
  3. 複製文件應用程序/代碼/核心/法師/ ImportExport /控制器/ Adminhtml/ExportController.php應用程序/代碼/本地/法師/ ImportExport /控制器/ Adminhtml/ExportController
  4. 約77行,在exportAction()方法中,註釋掉if和else。與上述相同的原因

這是爲我做的。

+0

這不是我需要的確切答案,但它讓我知道了解決問題的方法。謝謝! – Michael 2015-04-30 23:38:12