Comment obtenir l'image d'un produit enfant dans le panier Magento

10

J'essaie d'obtenir l'image du produit enfant d'un produit configurable qui a été ajouté au panier par le client.

Par exemple, si le client a ajouté une paire de chaussures rouges au panier, je voudrais afficher cette couleur dans le panier.

J'ai défini "Afficher le produit en miniature"

Le problème est cette fonction d'une extension de nuance de couleur

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;
}

dans le modèle colorselectorplus/cart/item/default.phtml

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

Qui est appelé depuis Helper / Data.php pour une raison quelconque, il ne renvoie que l'image de base pour le produit et ignore l'image correcte pour la couleur.

J'ai essayé de changer imaged'utilisation thumbnailmais je n'ai aucune joie ...

Un autre développeur a-t-il rencontré ce problème avec cette extension et réussi à le résoudre?

Cela ne me dérangerait même pas une correction à chaud en ce moment ...

user1704524
la source

Réponses:

10

Goto admin>System>Configuration>Checkout>Shopping Cart>Configurable Product Imagemake it Product Thumbnail Itselfthis make child product image lieu d'envoyer

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

pour le produit configurable $ _Item> getSku donnez au produit enfant une autre fois donnez les produits principaux. donc juste un produit enfant en utilisant l'article sku

Je suppose que vous avez utilisé une extension tierce, j'ai donc changé certains changements en fonction de mon changement de concept

Étape 1 : à la placeof send product send all item object

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

à

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

Étape 2 : certains changements sur la fonction

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;
}
Amit Bera
la source
Merci pour vos commentaires. J'ai mentionné dans cet article que j'avais déjà cela à oui ...
user1704524
excuses mais ce n'est pas tout à fait clair ce que vous voulez dire ???
user1704524