Magento 如何以编程方式将产品的基本映像设置为小映像?

Magento 如何以编程方式将产品的基本映像设置为小映像?,magento,magento-1.7,Magento,Magento 1.7,我使用以下代码将基本图像设置为产品的小图像。 在运行代码之前,我有以下信息 --- ---- [image] => /s/a/santat.jpg [small_image] => [thumbnail] => /s/a/santa-300.jpg --- -- 但仍然在管理员没有图像设置为小图像为什么?我使用多网站设置 您需要更改代码 $product = Mage::getModel('catalog/product')->load($id); $medi

我使用以下代码将基本图像设置为产品的小图像。 在运行代码之前,我有以下信息

---
----
[image] => /s/a/santat.jpg
[small_image] => 
[thumbnail] => /s/a/santa-300.jpg
---
-- 但仍然在管理员没有图像设置为小图像为什么?我使用多网站设置


您需要更改代码

    $product = Mage::getModel('catalog/product')->load($id);
$mediaGallery = $product->getMediaGallery();
if (isset($mediaGallery['images'])){
    foreach ($mediaGallery['images'] as $image){
        Mage::getSingleton('catalog/product_action')->updateAttributes(array($product->getId()), array('small_image'=>$image['file']), 0);
        break;
    }
}
print_r($product);

[image] => /s/a/santa.jpg
[small_image] => /s/a/santa.jpg
[thumbnail] => /s/a/santa-300.jpg
    $product = Mage::getModel('catalog/product')->load($id);
$mediaGallery = $product->getMediaGallery();
if (isset($mediaGallery['images'])){
    foreach ($mediaGallery['images'] as $image){
        Mage::getSingleton('catalog/product_action')->updateAttributes(array($product->getId()), array('small_image'=>$image['file']), 0);
        break;
    }
}
 <?php
    require 'app/Mage.php';
    Mage::app();

    $products = Mage::getModel('catalog/product')->getCollection()
                            ->addAttributeToFilter( 'sku', array( 'in' => array("004XmasVacGrnShtrs") ) );                      

    foreach($products as $product)
    {
        $productId = $product->getId();
        echo "<br>";    
                //load the product
        $product = Mage::getModel('catalog/product')->setStoreId("14")->load($productId);
            //get all images
        $image = $product->getImage(); //Get product base image
        Mage::getSingleton('catalog/product_action')->updateAttributes(array($product->getId()), array('small_image'=>$image), 14); //14 is store id    
    }
    echo "done";

    ?>