問題描述
我必須創建一個簡單的 Magento 1.6.x 導入代理,用于創建/更新產品及其圖像.有人可以告訴我如何在不使用 magento API 的情況下添加產品圖片嗎?
I have to create a simple Magento 1.6.x import agent that suppose to create/update products and their images. Could someone advise me how to add product image without having to use the magento API?
結果證明 api 性能很差,我開始有點沮喪.. :-(
The api performance turned out to be very poor and I am starting to be a little frustrated.. :-(
我發現了一些關于此問題的其他問題,但沒有一個與向產品添加圖像有關.
I have found some other questions regarding this problem, but none of them concerns with adding images to the product.
這是我帶來的:
$product->setIsMassupdate(true)
->setExcludeUrlRewrite(true)
->setManufacturer($this->addManufacturers(utf8_encode($record[4])))
->setSku($record[3])
->setAttributeSetId($this->attribute_set)# 9 is for default
->setTypeId(Mage_Catalog_Model_Product_Type::TYPE_SIMPLE)
->setName(utf8_encode($record[5]))
->setCategoryIds($this->getCategories(array($record[0], $record[1], $record[2]))) # some cat id's,
->setWebsiteIDs(array(1)) # Website id, 1 is default
->setDescription(utf8_encode($record[6]))
->setShortDescription($this->shortText(utf8_encode($record[6]), 150))
->setPrice($price) # Set some price
->setSpecialPrice($special_price)
->setWeight($record[12])
->setStatus( Mage_Catalog_Model_Product_Status::STATUS_ENABLED )
->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH)
->setTaxClassId(2) // default tax class
->setPixmaniaimg($record[10])
->setStockData(array('is_in_stock' => $inStock, 'qty' => $qty))
->setCreatedAt(strtotime('now'));
有人可以幫我在沒有 API 的情況下直接添加圖片嗎?
Can someone help me with adding images directly without the API?
謝謝
盧卡斯
推薦答案
我在 Magento 1.6.1 中做到了這一點.只需將您的圖片 URL 路徑放在第一個數組中即可.
I did this in Magento 1.6.1. Just put your image URL paths in the first array and you are good to go.
另請參閱 Mage_Catalog_Model_Product 以熟悉 addImageToMediaGallery() 和您無疑需要熟悉的其他方法將來知道.
Also look at Mage_Catalog_Model_Product to become familiar with addImageToMediaGallery() and other methods you'll undoubtedly need to be aware of in the future.
// Add three image sizes to media gallery
$mediaArray = array(
'thumbnail' => $putPathHere,
'small_image' => $putPathHere,
'image' => $putPathHere,
);
// Remove unset images, add image to gallery if exists
$importDir = Mage::getBaseDir('media') . DS . 'import/';
foreach($mediaArray as $imageType => $fileName) {
$filePath = $importDir.$fileName;
if ( file_exists($filePath) ) {
try {
$product->addImageToMediaGallery($filePath, $imageType, false);
} catch (Exception $e) {
echo $e->getMessage();
}
} else {
echo "Product does not have an image or the path is incorrect. Path was: {$filePath}<br/>";
}
}
這篇關于Magento 以編程方式添加產品圖片的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!