【问题标题】:Magento CSV Import Images MissingMagento CSV 导入图像丢失
【发布时间】:2013-03-25 22:26:46
【问题描述】:

我通过使用 magento 中的导入/导出工具导出产品来编辑我的产品,导入它们后我遇到了重新索引过程存在问题,我终于修复了。

但是现在我所有的图片都丢失了,并且没有显示在前端,有人可以帮我解决这个问题吗?

/1/_/1_7_138.jpg 是 CSV 图像位置的格式

我还尝试将 media/category/product 中的图像移动到 media/import 但仍然无法正确显示

我还尝试在媒体文件夹中将文件权限从 755 编辑到 77,但仍然没有

我也在相应的 SQL 数据库中运行了这个

INSERT INTO catalog_product_entity_media_gallery (attribute_id, entity_id, `value`)
SELECT ga.attribute_id, v.entity_id, v.value
FROM catalog_product_entity_varchar v
INNER JOIN eav_entity_type et ON et.entity_type_code=\'catalog_product\'
INNER JOIN eav_attribute va ON va.entity_type_id=et.entity_type_id AND
va.frontend_input=\'media_image\' AND va.attribute_id=v.attribute_id
INNER JOIN eav_attribute ga ON va.entity_type_id=et.entity_type_id AND
ga.attribute_code=\'media_gallery\'
LEFT JOIN catalog_product_entity_media_gallery g ON g.entity_id=v.entity_id AND
g.value=v.value
WHERE v.value<>\'no_selection\' AND v.value<>\'\' AND g.value IS NULL;

并得到以下错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near '\'catalog_product\' INNER JOIN
eav_attribute va ON va.entity_ty

【问题讨论】:

    标签: mysql magento csv import magento-1.7


    【解决方案1】:

    不确定您是否遇到与我相同的问题,但是当我重新导入产品时,我的图片损坏了图片仍然与产品相关联,只是没有设置为基础、小、缩略图等

    我做了类似的事情

    update catalog_product_entity_varchar AS v inner join catalog_product_entity_media_gallery AS g on v.entity_id = g.entity_id set v.value = g.value where (v.attribute_id = '85' or v.attribute_id = '86' or v.attribute_id = '87');
    

    在我的数据库中重新分配它们。

    【讨论】:

    • 是的,我遇到了同样的问题,他们根本没有出现在后端,我应该在适当的 MySQL 数据库中的 phpmyadmin 中运行此代码吗?
    • 并且在前端它们没有设置为基本图像
    【解决方案2】:

    签入

    数据库表catalog_product_entity_media_gallery是否有您要查找的图像的条目。

    类似于 1 703 17 /1/_/1_7_138.jpg

    然后去 media/catalog/product/1/_/ 看看这个图片文件是否存在。

    额外刷新缓存并检查。

    【讨论】:

      【解决方案3】:

      使用导入/导出时,媒体/导入文件夹中的文件夹结构必须与 csv 文件中指定的相同。因此,如果在 CSV 中将媒体文件名指定为“/1/_/1_7_138.jpg”,则必须在您的文件中存在“/media/import/1/_/1_7_138.jpg” Magento 根。否则导入/导出将找不到媒体文件。

      最简单的解决方案是,不在您的 csv 中定义文件夹结构,而是将所有应该导入的媒体文件直接放在 media/import/ 中。所以在你的情况下:

      CSV 条目(例如在“缩略图”列中):1_7_138.jpg

      文件:/media/import/1_7_138.jpg

      不幸的是,Magento 无法导入自己的出口!因此,必须修改导出的 CSV,才能在另一个 Magento 安装中导入。

      【讨论】:

      • 好吧,另一个问题,因为图像都在文件夹中,我必须将图像放入 media/import 中还是可以放入 /media/import/1/_/1_7_138.jpg
      • 我尝试以该格式移动所有媒体文件 /media/import/1/_/1_7_138.jpg 并且所有图像都消失了。但是当我将它们移回媒体/类别/产品时,它们会显示在前端,但只是没有默认图像,但它们仍然在后端丢失
      • /media/import/1/_/1_7_138.jpg 就可以了。但该图像的 csv 文件中的路径必须是 /1/_/1_7_138.jpg。您不必将文件从 media/catalog/product 移动到 media/import 文件夹。 media/import 文件夹只是 magento 查找要导入的图像的地方。当导入运行时,magento 在 media/catalog/product/ 创建子目录,并自动将图像从 media/import 复制到这些目录
      【解决方案4】:

      不确定您是否仍有问题,但为了帮助您列出的 INSERT 查询,它不起作用,因为单引号已转义。我猜你在某处的帖子中找到了这个查询,当查询发布时,单引号用“\'”转义。

      如果您将所有的 \' 更改为单引号,如下所示:

      插入......
      INNER JOIN eav_entity_type et ON et.entity_type_code='catalog_product'

      然后查询应该可以工作了。我还建议作为一种好的做法,您首先在不使用插入命令的情况下运行选择,以确保在盲目运行插入命令之前返回良好的结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-18
        • 2023-04-09
        • 1970-01-01
        • 2018-08-20
        • 1970-01-01
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        相关资源
        最近更新 更多