在Magento导入后,产品不会显示在前端

时间:2013-07-10 05:05:03

标签: magento import

我使用系统 - 导入/导出 - 导入选项导入产品。

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

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

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

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

所以请帮助我在csv中出错的地方。下面是我的csv截图。

enter image description here enter image description here enter image description here enter image description here

8 个答案:

答案 0 :(得分:1)

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

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

  • 访问产品列表选择全部
  • 更改属性
  • 产品信息 - >网站

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

答案 1 :(得分:0)

我忘记了哪些CSV列是强制性的,但我确实记得,如果有些列丢失,导入器不会告诉您,而是您得到了您正在描述的行为。

找出强制性内容的最简单方法是:

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

    我的案例中缺少的列总是具有相同的值,因此如果您的问题也是如此,您只需扩展CSV导入程序并在其中硬编码这些值,而不是手动修复CSV。

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

    1. 导入产品
    2. 导出该产品
    3. 在管理员中打开该产品并保存
    4. 导出新保存的产品
    5. 比较导出的CSV-s区别
    6. 修复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将产品数据拆分为多个段,如果一个产品位于两个段中,导入器将删除在导入第二个段之前在第一个段中为该产品导入的数据,从而导致数据库损坏(有关详细信息,请参阅this link解释 - 这是我在下面得到解决方案的地方。)

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

      要解决此问题,您必须更改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;
      }
      

      希望这有帮助。

答案 2 :(得分:0)

我最近遇到了同样的问题,我花了一些时间来弄明白......

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

  1. 按原样导入。如果它们已启用,但未显示...

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

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

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

答案 5 :(得分: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超过1

,字段qty也是必填字段

答案 6 :(得分:0)

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

1

答案 7 :(得分:-1)

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

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

但是,我确实认为如果我只是简单地更改了csv导入中的数据,它将为我节省这种轻微的便利性。