Magento Community 1.7.0.2 - 导出产品CSV

时间:2012-08-09 14:58:37

标签: php magento magento-1.7

相当新的Magento安装,产品设置等,正准备导出产品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;
}

对于某些原因,$ categoryId没有设置为$ rowCategories不是数组。

我刚刚重新运行索引管理,但在我看来,类别或其他东西有问题。我知道快速解决方法是在继续之前检查$ categoryId是否已设置,但我想首先知道是什么导致了错误。

3 个答案:

答案 0 :(得分: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 :(得分:2)

我遇到了同样的问题。由于我只是尝试导出一个产品 - 修复很简单:我只是将产品添加到一个类别中。

答案 2 :(得分:1)

出口产品表格上的过滤器似乎有问题。对于magento 1.7.0.2的简单修复:

  1. 将文件 app / code / core / Mage / ImportExport / Model / Export.php 复制到 app / code / local / Mage / ImportExport / Model / Export.php
  2. 在第145行附近的 export()方法中,注释掉if和else。表单上永远不会有过滤器。
  3. 将文件 app / code / core / Mage / ImportExport / controllers / Adminhtml / ExportController.php 复制到 app / code / local / Mage / ImportExport / controllers / Adminhtml / ExportController < /强>
  4. 在第77行附近的 exportAction()方法中,注释掉if和else。与上述相同的原因
  5. 这是为我做的。