This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require_once 'app/Mage.php'; | |
Mage::app(); | |
mysql_connect(localhost, DATABASE_USER, DATABASE_PASSWORD); | |
mysql_select_db(DATABASE_NAME) or die("Unable to select database"); | |
$result = mysql_query("SELECT * FROM `catalog_product_entity_varchar` WHERE attribute_id in (74,75,76) AND value='no_selection'"); | |
while ($row = mysql_fetch_array($result)) { | |
$id = $row["entity_id"]; | |
$product = Mage::getModel("catalog/product")->load($id); | |
$mediaGallery = $product->getMediaGallery(); | |
if ($mediaGallery["images"][0]["file"] != '' || $mediaGallery["images"][0]["file"] != NULL) { | |
$path = $mediaGallery["images"][0]["file"]; | |
$update_result = mysql_query("UPDATE `catalog_product_entity_varchar` SET VALUE='".$path."' WHERE attribute_id in (74,75,76) and entity_id=".$id); | |
echo "set images for product ".$id."<br />"; | |
} | |
} | |
?> |
You can avoid writing to the database directly like this:$prod->setMediaGallery(array('images' => array(), 'values' => array()));$prod->addImageToMediaGallery($image_path, array('thumbnail'), false, false);the other input strings are 'image' for the base image, and 'small_image' for the small image. http://docs.magentocommerce.com/Mage_Catalog/Mage_Catalog_Model_Product.html#...
ReplyDelete@Jordan wow I had no idea it was so simple, I tried using the media gallery methods but I had no luck, and I couldn't find anything in the Magento documentation, thanks a lot for the comment!In my method the input strings correspond with the attribute_ids of 74, 75, and 76 so I did it that way, as I couldn't find image and small_image keys in the convoluted database structure
ReplyDelete