Come ottenere l'immagine del prodotto figlio nel Carrello Magento


10

Sto cercando di ottenere l'immagine del prodotto figlio di un prodotto configurabile che è stato aggiunto al carrello dal cliente.

Ad esempio, se il cliente ha aggiunto un paio di scarpe rosse al carrello, vorrei mostrare quel colore nel carrello.

Ho impostato "Mostra anteprima prodotto"

Il problema è questa funzione da un'estensione di colore campione

public function findColorImage($value, $arr, $key, $type)
{
    $found = '';
    if(isset($arr[$key])) {
        $total = count($arr[$key]);
        if($total>0)
        {
            for($i=0; $i<$total;$i++)
            {
                if($value == ucwords($arr[$key][$i]))//if it matches the color listed in the attribute
                {
                    $found = $arr[$type][$i];//return the image src
                }
            }
        }
    }
    if ($found == '') {
        if (isset($arr['image'])){
            $found = $arr['image'][0];
        }
    }
    return $found;
}

nel modello colorselectorplus/cart/item/default.phtml

findColorImage ($ _ item-> getProductId (), $ product_base, 'color', 'image'); ?>

Che viene chiamato da Helper / Data.php per qualche motivo restituisce solo l'immagine di base per il prodotto e ignora l'immagine corretta per il colore.

Ho provato a cambiare imageda usare thumbnailma non ho alcuna gioia ...

Qualche altro sviluppatore ha riscontrato questo problema con questa estensione ed è riuscito a risolverlo?

Non mi dispiacerebbe nemmeno una correzione calda in questo momento ...

Risposte:


10

Vai a admin>System>Configuration>Checkout>Shopping Cart>Configurable Product Imagefarlo Product Thumbnail Itselfimmagine del prodotto figlio invece di inviare

$_item->getProductId()
send $_item
and put somelogic
$_item

per prodotto configurabile $ _Item> getSku fornisce un'altra volta al prodotto figlio i prodotti principali. quindi solo un prodotto figlio che utilizza lo sku dell'articolo

Suppongo che tu abbia utilizzato l'estensione di terze parti, quindi ho modificato alcune modifiche in base al mio cambio di concetto

Step1 : inveceof send product send all item object

findColorImage($_item->getProductId(),$product_base,'color', 'image');

per

findColorImage($_item,$product_base,'color', 'image'); 

Step2 : alcune modifiche alla funzione

public function findColorImage($item, $arr, $key, $type)
{
    /* $value  set here*/
    $value=$item->getProductId();

    $found = '';
    if(isset($arr[$key])) {
        $total = count($arr[$key]);
        if($total>0)
        {
            for($i=0; $i<$total;$i++)
            {
                if($value == ucwords($arr[$key][$i]))//if it matches the color listed in the attribute
                {
                    $found = $arr[$type][$i];//return the image src
                }
            }
        }
    }

    if ($found == '') {
        if (isset($arr['image'])){
            $found = $arr['image'][0];
        }
    }
    /*  for configurable product send child product image */
    if($item->getProductTypeId="configurable"){
        $ChildProduct=Mage::getModel('catalog/product')->loadByAttribute('sku',$item->getSku());
        $found=Mage::helper('catalog/image')->init($ChildProduct, 'thumbnail');

    }
    return $found;
}

Grazie per i tuoi commenti. Ho menzionato in questo post che ho già questo per sì ...
user1704524

scuse ma non è abbastanza chiaro cosa intendi ???
user1704524
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.