2016-08-29 11 views
8

Tôi có chế độ xem cửa hàng mới và tôi đã cập nhật tất cả các sản phẩm bằng quản trị viên Magento: **Manage Products > Select all > Update Attributes** và sau đó chọn cửa hàng mới. Bây giờ tất cả các sản phẩm của tôi được liên kết với chế độ xem cửa hàng mới của tôi, tôi đang gặp sự cố với tất cả hình ảnh của mình. Trên giao diện người dùng, nó hiển thị tất cả các trình giữ chỗ. Trong bảng quản trị khi tôi nhấp vào một sản phẩm và sau đó hình ảnh .. nó có thể có hình ảnh nhưng nó không được chọn để sử dụng hình ảnh cơ sở, hình ảnh nhỏ hoặc hình thu nhỏ.Sử dụng tất cả hình ảnh từ cửa hàng mặc định của tôi trên chế độ xem cửa hàng mới của tôi

Có cách nào để cập nhật tất cả hình ảnh trên chế độ xem cửa hàng mới của tôi để sử dụng hình ảnh chính của chế độ xem cửa hàng mặc định không?

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

Chạy tập lệnh shell ở trên?

Trả lời

3

hi bạn có thể sử dụng magmi cho điều này, chỉ cần xuất các sản phẩm csv từ Magento admin, và tái nhập các trường bắt buộc như sku, hình ảnh, small_image và hình thu nhỏ thông qua magmi và nó sẽ làm công việc của bạn rất nhanh và dễ dàng.

nhờ

+0

Tôi không muốn sử dụng magmi, nhưng tôi quen với tùy chọn này. – 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

Có cách nào để sử dụng và chạy nó bên trong/shell không? – thismethod

+0

cửa hàng mới của tôi xem @faizanbeg là 13. – thismethod

0

Chạy kịch bản này trong thư mục gốc Magento của bạn:

<?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

Xin chào @Abhinav Sing, quan điểm cửa hàng mới của tôi rằng tôi muốn tất cả hình ảnh đính kèm là 13. – thismethod

Các vấn đề liên quan