2016-08-29 61 views
8

我有一個新的商店視圖,我使用magento admin更新了所有產品:**Manage Products > Select all > Update Attributes**,然後選擇新的商店。現在,我的所有產品都與我的新商店相關聯,所以我的所有圖片都有問題。在前端顯示所有佔位符。在管理面板上,當我點擊一個產品,然後圖像..它可能有圖像,但它沒有選擇使用基本圖像,小圖像或縮略圖。在我的新商店視圖中使用來自我的默認商店的所有圖像

有沒有辦法更新我的新商店視圖上的所有圖像以使用默認商店視圖主圖像?

require_once 'abstract.php'; 

class Attach_Default_Store_Images Extends Mage_Shell_Abstract { 

    public function run() 
    { 
     $products = Mage::getModel('catalog/product')->getCollection(); 
     foreach ($products as $product) { 
      $productFrom = $product->setStoreId(1)->getImage(); 
      $productTo = $product->setStoreId(13) 
      ->setImage($productFrom) 
      ->setSmallImage($productFrom) 
      ->setThumbnail($productFrom); 
      echo "Images Updated\n"; 
      $product->save(); 
    } 

     Mage::getModel('catalog/product_image')->clearCache(); 
     echo "Image Cache Cleared\n"; 

    } 


    public function usageHelp() 
    { 
     return <<<USAGE 
Usage: php -f cache.php -- [options] 
     php -f cache.php -- clean 

    clean    Clean Old Cache 
    help    This help 

USAGE; 
    } 
} 

$shell = new Attach_Default_Store_Images(); 
$shell->run(); 

運行上面的shell腳本?

回答

3

嗨,你可以使用magmi對於這一點,只是通過magmi出口從Magento管理產品CSV,並重新導入像SKU,圖像,small_image和縮略圖所需的字段,它會做你的工作非常快並且容易。

感謝

+0

我寧可不使用magmi,但我熟悉這個選項。 – thismethod

1
$products = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('*'); 
foreach ($products as $product) { 
    if (!$product->hasImage()) continue; 
    if (!$product->hasSmallImage()) $product->setSmallImage($product->getImage()); 
    if (!$product->hasThumbnail()) $product->setThumbnail($product->getImage()); 
    $product->save(); 
} 
+0

有沒有辦法使用它並在/ shell中運行它? – thismethod

+0

我的新商店視圖@faizanbeg是13. – thismethod

0

運行此腳本在你的Magento根:

<?php 
    ini_set('memory_limit','2048M'); 
    error_reporting(E_ALL); 
    ini_set('display_errors', '1'); 

    require_once('app/Mage.php'); 
    Mage::app('default'); 
    $storeId = 0; 
    Mage::app()->setCurrentStore(Mage::getModel('core/store')->load($storeId)); 

    $from_id = 1 // product id from; 
    $to_id = 1000 // product id to; 
    $products = Mage::getModel('catalog/product') 
    ->getCollection() 
    ->addAttributeToSelect('*') 
    ->addFieldToFilter('entity_id',array('gteq'=>$from_id)) 
    ->addFieldToFilter('entity_id',array('lteq'=>$to_id)); 

    foreach ($products as $product) { 

    if (!$product->getImage()) continue; 
    if (!$product->getSmallImage()) $product->setSmallImage($product->getImage()); 
    if (!$product->getThumbnail()) $product->setThumbnail($product->getImage()); 
    $product->save(); 

    } 
    ?> 
+0

嗨@Abhinav Sing,我的新商店認爲我想要附加的所有圖像都是13。 – thismethod

相關問題