将产品导入Magento会破坏现有产品的图像

时间:2013-11-14 20:22:33

标签: image magento import export

导出后,更改一些细节,然后将大量产品导入Magento,我注意到所有图像都不再设置。图像仍存在于每个产品的媒体库中,但它们未设置为基本图像。

我已经看到,在某些情况下,您需要将图像复制到/ media / import /文件夹,但是是否可以更改导入文件以便我可以将图像保留在原来的位置?

现在,所有图片都显示在一个文件夹中:/ media / catalog / product /

非常感谢任何帮助。

此外,如果可以运行将所有产品的基本图像设置为其库中的第一个图像的脚本,那么这也可以。谢谢!

1 个答案:

答案 0 :(得分:1)

假设您已经加载了产品,并且您已准备好进行更改并保存它们。使用此代码:

if (file_exists($imagePath)) {//New image file
 //Load your media table
 $mediaApi = Mage::getModel("catalog/product_attribute_media_api");
 try {
 //Now you have all the images available for your product 
 //if you previously have assign anything
  $items = $mediaApi->items($product->getId());
 //loop them
      foreach ($items as $item) {
 //With that line you can remove them if you want
 echo ($mediaApi->remove($product->getId(), $item['file']));
             }
   } catch (Exception $exception) {
           var_dump($exception);
    die('Exception Thrown');
    }

 $cache = Mage::getSingleton('core/cache');
 $cache->flush();
//You need that line
$product->setMediaGallery(array('images' => array(), 'values' => array()));
//That line assigns your new image.As base,thumbail and image.
//Use it in the loop if you want to reassign an existing image.
$product->addImageToMediaGallery($imagePath, array('thumbnail', 'small_image', 'image'), false, false);

我希望能帮到你 干杯!