Я должен создать простой агент импорта Magento 1.6.x, который предполагает создание / обновление продуктов и их изображений. Может кто-нибудь посоветует мне, как добавить изображение продукта, не используя API-интерфейс magento?
Производительность api оказалась очень бедной, и я начинаю немного расстраиваться .. 🙁
Я нашел некоторые другие вопросы по этой проблеме, но ни одна из них не связана с добавлением изображений в продукт.
Это то, с чем я пришел:
$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?
благодаря
Lukas
Я сделал это в Magento 1.6.1. Просто поместите URL-адреса изображений в первый массив, и вам будет хорошо идти.
Также посмотрите на Mage_Catalog_Model_Product, чтобы ознакомиться с addImageToMediaGallery () и другими методами, о которых вам, несомненно, нужно будет знать в будущем.
// 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/>"; } }