2016-08-29 9 views
8

Mam nowy widok sklepu i zaktualizowałem wszystkie produkty przy użyciu kreatora magento: **Manage Products > Select all > Update Attributes**, a następnie wybierając nowy sklep. Teraz, gdy wszystkie moje produkty są powiązane z moim nowym widokiem sklepu, mam problem ze wszystkimi moimi obrazami. Na przednim końcu pokazuje wszystkie symbole zastępcze. W panelu administratora po kliknięciu produktu, a następnie zdjęć .. może on zawierać obrazy, ale nie jest wybrany do użycia obrazu podstawowego, małego obrazu lub miniatury.Użyj wszystkich obrazów z mojego sklepu domyślnego w moim nowym widoku sklepu

Czy istnieje sposób aktualizacji wszystkich obrazów w moim nowym widoku sklepu, aby użyć domyślnych obrazów widoku głównego magazynu?

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(); 

Uruchom skrypt powłoki z powyższym?

Odpowiedz

3

hi można użyć magmi do tego, po prostu wyeksportować CSV produktów z Magento administratora, a re-import wymagane pola jak sku, wizerunek, small_image i miniatury poprzez magmi i będzie wykonywać swoją pracę bardzo szybko i łatwo.

dzięki

+0

Wolałbym nie używać magmi, ale jestem zaznajomiony z tej opcji. – 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

Czy istnieje sposób użycia tego i uruchomienia go wewnątrz/powłoki? – thismethod

+0

mój nowy widok sklepu @faizanbeg to 13. – thismethod

0

uruchomić ten skrypt w katalogu głównym 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

Witam @Abhinav Śpiewaj, mój nowy widok sklepu, który chcę, aby wszystkie obrazy dołączone były 13. – thismethod