一般来说,Magento后台管理里的CSV批量导入,可以解决我们商品批量上传的大部分问题,我们只要根据导出的属性字段,设置好格式,可以实现大部分商品的导入,但是有时候使用Magento批量导入带图片的商品却是十分的麻烦,我们只需要注意以下几点,就可以基本实现Magento产品图片的批量导入和显示了。
一、导出Magento CSV商品属性
我们要上传前,先在Magento中创建几个商品,再在System->Import/Export->Export All Product->Save and Continue Editing->Run Profile,运行之后,就会在Magento目录下的var/export里创建个CSV,我们可以把这个CSV格式下载到本地,用CSV编辑工具来创建Magento批量上传的商品,Magento笔记推荐使用Open Office来编辑CSV文件格式。
二,设置CSV图片文件字段属性
我们在编辑CSV图片文件路径字段时候要注意,一定要在图片文件路径钱加入斜杠(/),例如:
/imagefilename.jpg
三,上传图片并导入
我们在导入MagentoCSV文件之前,一定要将所有要导入的商品图片,先上传到
/media/import
目录里,再上传并运行CSV文件,否则不能把图片导入到Magento数据库里!
四,批量导入后 前台不显示问题的修复
有时候,我们通过MagentoCSV批量导入商品之后,前台的商品的默认图片显示为空,我们只需要修改Magento Product文件里的一个参数,就可以解决Magento批量导入之后,前台商品不显示默认图片的问题,
打开:
app/code/core/Mage/Catalog/Model/Product.php
找到函数addImageToMediaGallery:
1
2
3
4
5
6
7
8
9
10
11
|
public function addImageToMediaGallery( $file , $mediaAttribute =null, $move =false, $exclude =true) { $attributes = $this ->getTypeInstance(true)->getSetAttributes( $this ); if (!isset( $attributes [ 'media_gallery' ])) { return $this ; } $mediaGalleryAttribute = $attributes [ 'media_gallery' ]; /* @var $mediaGalleryAttribute Mage_Catalog_Model_Resource_Eav_Attribute */ $mediaGalleryAttribute ->getBackend()->addImage( $this , $file , $mediaAttribute , $move , $exclude ); return $this ; } |
将$exclude=true修改成$exclude=false,修改之后的结果如下:
1
2
3
4
5
6
7
8
9
10
11
|
public function addImageToMediaGallery( $file , $mediaAttribute =null, $move =false, $exclude =false) { $attributes = $this ->getTypeInstance(true)->getSetAttributes( $this ); if (!isset( $attributes [ 'media_gallery' ])) { return $this ; } $mediaGalleryAttribute = $attributes [ 'media_gallery' ]; /* @var $mediaGalleryAttribute Mage_Catalog_Model_Resource_Eav_Attribute */ $mediaGalleryAttribute ->getBackend()->addImage( $this , $file , $mediaAttribute , $move , $exclude ); return $this ; } |
修改之后,前台就可以正常显示图片了,
总之,我们在批量导入Magento商品的时候,要注意,先上传产品到/media/import目录,CSV的图片路径字段要加斜杠(/),导入之后修改Product.php文件,只要操作时候仔细点,基本上可以正常使用Magento的导入功能。