私は解決できないこの問題を抱えています。適切な言葉で説明できないからです。私はこれに慣れていないので、この不器用な質問で申し訳ありません。
以下に、私の目標の概要を示します。
私はこのために私のmagentoで同様の製品を販売しようとしています.
しかし、私は画像に1つだけ問題があります..
つまり、現在の製品のすべてのイメージを取得していますが、基本イメージが選択されていません。プログラムで最初のイメージを基本イメージとして設定するにはどうすればよいですか?
何か案は ?
こんにちは、次のようにできます。
$image =$imagePath."image.png";
$product->setMediaGallery(array('images'=>array (), 'values'=>array ()));
if(is_file($image))
{
$product->addImageToMediaGallery($image, array ('image', 'small_image', 'thumbnail'), false, false);
}
つまり、最初にメディア ギャラリーを設定する必要があります。PS これは必要な手順です。
次に、addImageToMediaGallery を使用してすべての画像をギャラリーに追加します。ここで、「image」は「base_image」を参照します。
つまり、上記の例では、1 回の呼び出しで image.png を base_image、small_image、およびサムネイル画像に設定しています。
これがお役に立てば幸いです。
以下を使用して同じ結果を達成しました。
$product->setSmallImage($path)
->setThumbnail($path)
->setImage($path)
->save();
メディア ギャラリーに 1 つ以上の画像がある場合に適しています。
私がやっている
$product->load();
$gallery = $product->getMediaGalleryImages();
$paths = array();
foreach ($gallery as $image) {
$paths[] = $image->getFile();
}
sort($paths);
$path = array_shift($paths);
try {
$product->setSmallImage($path)
->setThumbnail($path)
->setImage($path)
->save();
} catch (Exception $e) {
echo $e->getMessage();
}
すべての製品画像を取得し、それらをファイル名で並べ替え、最初の画像を製品のプライマリ画像に設定します。インポートを実行してすべての写真を追加しましたが、プライマリ イメージを設定しませんでした。
私が使用したセットまたは「壊れた」製品を取得するには:
$collection = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToFilter('small_image', array('eq' => ''));