0

エクスポートし、いくつかの詳細を変更してから、多数の製品を Magento にインポートした後、すべての画像が設定されていないことに気付きました。イメージは各製品のメディア ギャラリーに引き続き存在しますが、ベース イメージとして設定されません。

場合によっては、画像を /media/import/ フォルダーにコピーする必要がありますが、画像をそのままの場所に保持できるように、インポート ファイルを変更することはできますか?

現在、すべての画像は次のフォルダーにあるように見えます: /media/catalog/product/

どんな助けでも大歓迎です。

さらに、すべての製品のベース イメージをそのギャラリーの最初のイメージに設定するスクリプトを実行できれば、それも同様に機能します。ありがとう!

4

1 に答える 1

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);

乾杯!

于 2013-11-14T21:47:11.693 に答える