3

我使用 System - Import/Export - Import 选项导入了产品。

我可以在管理面板中看到我的产品,但在前端看不到。

我尝试了重新索引、缓存清除、缓存刷新、物理缓存删除。

还检查了产品库存状态、可用性等。一切正常。

但它们没有显示在前端。我标记了一个东西,如果我打开我使用 csv 导入的产品,只是保存而没有任何更改,它就会开始显示。但我有100多种产品。所以我不能使用这个解决方案。

所以请帮助我在csv中哪里出错了。下面是我的 csv 截图。

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

4

8 回答 8

1

您需要确保将产品附加到网站。

这可以通过批量更新来完成:

  • 访问产品列表m 全选
  • 改变属性
  • 产品信息 -> 网站

也可以在 csv 中通过使用“_product_websites”字段并将其设置为网站名称或“base”来完成。

于 2013-11-29T19:15:26.440 回答
0

我遇到了同样的问题,然后我访问了我的 var/export/export_all_products 文件,再次下载并通过导入将其上传回来,注销我的帐户并重新登录,所有产品都回来了。这对我来说是一种备份,我可以在后端看到所有产品。

于 2014-02-22T06:05:05.690 回答
0

我忘记了哪些 CSV 列是强制性的,但我记得如果缺少某些列,导入器不会告诉您,而是您会得到您所描述的行为。

找出什么是强制性的最简单的方法是:

  1. 修复 Magento ImportExport 模块中的错误
  2. 在管理员中创建新产品
  3. 检查新产品在前端是否可见
  4. 使用 Magento ImportExport 导出器导出新产品
  5. 删除创建的产品
  6. 导入之前导出的产品csv
  7. 清除缓存并重新索引数据
  8. 检查产品在前端是否可见(应该是)
  9. 将您的 CSV 与导出的 CSV 进行比较,并尝试找出其中缺少的内容
  10. 尝试导入带有添加/固定列的 CSV 并添加数据,直到产品被导入,以便在前端可见

这需要分配试错...

在我的情况下,丢失的列始终具有相同的值,因此如果您的问题也是这种情况,您可以简单地扩展 CSV 导入器并在其中硬编码这些值,而不是手动修复 CSV。

如果您在管理员中打开并保存您的产品,您的产品会正确保存,您还可以:

  1. 导入产品
  2. 导出该产品
  3. 在管理员中打开该产品并保存
  4. 导出新保存的产品
  5. 比较导出的 CSV-s 的不同之处

修复 Magento ImportExport 错误:

第一个错误是,如果您导入多个产品,则第一个产品的数量信息将用于所有产品。要解决此问题,您必须在函数$row = array();之前添加。$row['product_id'] = $this->_newSku[$rowData[self::COL_SKU]]['entity_id'];Mage_ImportExport_Model_Import_Entity_Product::_saveStockItem()

第二个错误导致 Magento ImportExport 模块在导入多个产品时返回外键约束错误。发生错误是因为 magento 将产品数据拆分为多个段,如果一个产品位于两个段中,导入器将在导入第二段之前删除为第一个段中的产品导入的数据,从而导致数据库损坏(有关详细说明,请参阅此链接- 此是我得到以下解决方案的地方)。

请注意,删除外键约束不会解决问题,反而会使问题变得更糟,因为数据库将包含损坏的数据。

要修复它,您必须更改Mage_ImportExport_Model_Import_Entity_Abstract::_saveValidatedBunches()函数中的代码:

if ($startNewBunch || !$source->valid()) {添加后

if ($startNewBunch && count($bunchRows) > 1) {
  $arrKeys = array_keys($bunchRows);
  $arrNew  = array();
  while(($tRow = array_pop($bunchRows))) {
    $tKey = array_pop($arrKeys);

    $arrNew[$tKey] = $tRow;

    if ($tRow['sku']) {
      break;
    }
  }
  $nextRowBackup = array_reverse($arrNew, TRUE) + $nextRowBackup;
}

希望这可以帮助。

于 2013-07-10T12:14:26.447 回答
0

我最近遇到了同样的问题,我花了一些时间来解决这个问题......

看起来 magento 需要每个产品的状态标志,否则 magento 不会在仪表板中显示它。

解决方案:在您的 CSV 文件中添加一个“状态”列并将所有状态设置为“启用”(是的,它不是布尔值。只需使用引号内的字符串即可:)

于 2014-02-17T08:44:30.887 回答
0
  1. 按您的方式导入。如果它们已启用,但未显示...

  2. 然后您可以通过单击“管理产品”表中的“全选”产品,然后单击“更改状态”,然后选择“启用”来解决此问题。此过程可能需要一分钟。

  3. 访问您的商店,您应该会看到带有产品的前端。

状态/启用设置的某种错误。

于 2014-09-03T21:24:38.407 回答
0

在 magento 2 中,我们需要在索引管理中重新索引以在前端显示产品。
我们可以通过 cmd 重新索引。就像给定的示例一样,我们需要在 cmd 之后进入 magento 文件目录php -f bin/magento indexer:reindex来重新索引。

1

于 2016-02-16T07:03:51.250 回答
0

您必须在 CSV 中有下一个字段

sku 
_attribute_set 
_type 
_category 
description 
image 
name 
price 
short_description 
status 
tax_class_id 
thumbnail 
visibility 
weight 
qty 
_product_websites 
is_in_stock

请注意,该字段is_in_stock是必填项,即使qty超过 1

于 2015-12-17T13:27:02.573 回答
-1

当我第一次开始通过 csv 导入产品时,虽然我将产品设置为启用,但我发现即使它在 magento 后端显示为启用,它实际上并不是 - 认为它与将字段内容设置为“1”或“0”而不是“启用”或“禁用/空”。

为了解决这个问题,在导入后,我只需选择后端中的所有产品并将状态更改为启用 - 它解决了问题。

但是,我确实认为,如果我只是更改了 csv 导入中的数据,它会为我省去这个小小的不便。

于 2013-10-13T13:25:10.923 回答