3

相当新的 Magento 安装,产品已设置等,并且正要导出产品 CSV,一旦我提交了正常表单,错误“没有发送有效数据”我开始进行一些调试以查看发生了什么。第一站是 exception.log

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 是否已设置,但我想首先知道是什么导致了错误。

4

3 回答 3

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;
}
于 2013-01-08T23:01:21.310 回答
2

我有同样的问题。因为我只是想导出一个产品 - 修复很简单:我只是将产品添加到一个类别中。

于 2012-10-15T12:58:44.050 回答
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。同上的原因

那是为我做的。

于 2013-04-29T22:52:30.013 回答