2014-03-27 89 views
0

我選擇沒有圖像的magento產品。但產品有圖像,只有他們不在管理中選擇爲ThumbnailSmall ImageBase Image。例如,我可以做圖像Base Image如何設置產品圖片

$products123321 = Mage::getModel('catalog/product') 
    ->getCollection() 
    ->addAttributeToSelect('*') 
    ->addAttributeToFilter(array(
     array (
      'attribute' => 'image', 
      'like' => 'no_selection' 
     ), 
     array (
      'attribute' => 'image', // null fields 
      'null' => true 
     ), 
     array (
      'attribute' => 'image', // empty, but not null 
      'eq' => '' 
     ), 
     array (
      'attribute' => 'image', // check for information that doesn't conform to Magento's 

formatting 
      'nlike' => '%/%/%' 
     ), 
    )); 

回答

0
$mediaGallery = $product123321->getMediaGallery(); 
//if there are images 
if (isset($mediaGallery['images'])){ 
    //loop through the images 
    foreach ($mediaGallery['images'] as $image){ 
     //set the first image as the base image 
     Mage::getSingleton('catalog/product_action')->updateAttributes(array($product123321- 

>getId()), array('image'=>$image['file']), 0); 
     //stop 
     break; 
    } 
} 
    echo "Edited sku is ".$product123321->getSku(); 

ALSO

$product1 = Mage::getModel('catalog/product')->loadByAttribute('sku', 'FN244403'); 
$product2 = Mage::getModel('catalog/product')->loadByAttribute('sku', 'FN229437'); 
$product1ID = $product1->getId(); 
$connection = Mage::getSingleton('core/resource')->getConnection('core_read'); 
$sql = "SELECT * FROM `catalog_product_entity_media_gallery` WHERE `entity_id` = '$product1ID' 

LIMIT 1"; 
$rows  = $connection->fetchAll($sql); 
echo $path = $rows[0]['value']; 
    echo "Edited sku is ".$product1->getSku()." ".$product1->getImage()." ".$product1- 

>getThumbnail()." ".$product2->getImage(); 
echo " asdasd ".Mage::getBaseDir('media') . DS . 'catalog/product' .trim($rows[0]['value']); 
Mage::app()->getStore()->setId(Mage_Core_Model_App::ADMIN_STORE_ID); 
$product1->addImageToMediaGallery(Mage::getBaseDir('media') . DS . 'catalog/product' .trim 

($rows[0]['value']), array('image', 'small_image', 'thumbnail'), false, false); 
$product1->save();