Reputation: 3554
Hi i am working on the site in which i need to add the products from the frontend , for that i am using the following code
<?php //$product = Mage::getModel('catalog/product');
$product = new Mage_Catalog_Model_Product();
echo time();
// Build the product
$product->setAttributeSetId(4);// #4 is for default
$product->setTypeId('simple');
$product->setName('Some cool product name');
$product->setDescription('Full description here');
$product->setShortDescription('Short description here');
$product->setSku(2);
$product->setWeight(4.0000);
$product->setStatus(1);
$product->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH);//4
print_r(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH);
$product->setPrice(39.99);// # Set some price
$product->setTaxClassId(0);// # default tax class
$product->setStockData(array(
'is_in_stock' => 1,
'qty' => 99999
));
$product->setCategoryIds(array(3));// # some cat id's,
$product->setWebsiteIDs(array(1));// # Website id, 1 is default
//Default Magento attribute
$product->setCreatedAt(strtotime('now'));
// Add three image sizes to media gallery
$mediaArray = array(
'thumbnail' => "me.jpg",
'small_image' => "me.jpg",
'image' => "me.jpg",
);
// 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/>";
}
}
//print_r($product);
try {
$product->save();
echo "Product Created";
}
catch (Exception $ex) {
//Handle the error
echo "Product Creation Failed";
}
?>
this is working fine , but there is one problem it doesn’t set the image to base default and small image.
It Added the images for the product but the checkbox in front of image
is not selected . I need to check the boxes .Please suggest where i am doing mistake.
thanks
Upvotes: 2
Views: 2380
Reputation: 636
Add
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
before
foreach($mediaArray as $imageType => $fileName) {
Upvotes: 1