Frage

Ich habe einen riesigen Katalog von Produkten, die alle etwa 4 Bilder pro Produkt haben, wobei die gleiche Namensstruktur so etwas wie "xxxxxx_fr.jpg" "xxxxxx_bk.jpg" "xxxxxx_fl.jpg" ist, wo die X die Produkte des Produkts und FR, BK, BK, darstellen FL Ständer für vorne, hinten, in voller Länge usw.

Derzeit sind Basis, Klein- und Miniaturansichten den FR -Bildern zugeordnet, aber ich versuche, nur das Miniaturbild für jedes Produkt in das FL -Bild aus der Galerie programmatisch zu ändern. Ich nähere mich diesem, indem ich eine benutzerdefinierte Produktsammlung baue, die Produkte durchlade und dann Folgendes lade:

foreach ($_productCollection as $product){
   $workingProduct = Mage::getModel('catalog/product')->load($productID);
   $gallery = $workingProduct->getMediaGalleryImages();  
   $cameraAngle = str_replace(".jpg","",explode("_",$image->getUrl())); //This results in string that is just FR, BK, FL etc.

if (strtolower($cameraAngle[1]) == 'fl') {
//I have tried both of the below methods
$workingProduct->setThumbnail($image->getUrl());
$product->addImageToMediaGallery($image->getUrl(),array('thumbnail'),false,false);
 $workingProduct->save();
}    
}

Die erste Methode macht nichts und die zweite Methode fügt der Bildergalerie ein neues Bild hinzu (das ich nicht möchte), aber es ändert auch nicht das Miniaturbild. Ich denke, dass es in Methode 1 mehr Potenzial gibt, da ich kein neues Bild in der Galerie importieren oder erstellen möchte, aber ich bin mir nicht sicher, was ich falsch mache.

War es hilfreich?

Lösung 2

Meine Lösung war das für alle anderen, die nachgesehen haben ...

   foreach ($gallery as $image){
        $cameraAngle = str_replace(".jpg","",explode("_",$image->getUrl()));

        if (strtolower($cameraAngle[1]) == 'fl') {               
            Mage::getSingleton('catalog/product_action')->updateAttributes(array($workingProduct->getId()), array('thumbnail'=>$image['file']), 0);

        }

Andere Tipps

Wenn ich Sie richtig verstehe, möchten Sie nur FR in FL für das Miniaturbild wechseln?

Mach das einfach:

$collection = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('thumbnail);
foreach($collection as $product) {
    $product->setThumbnail(str_replace('_FR', '_FL', $product->getThumbnail());
}
$collection->save();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top