Como obter imagem de produto filho no carrinho Magento

10

Estou tentando obter a imagem do produto filho de um produto configurável que foi adicionado ao carrinho pelo cliente.

Por exemplo, se o cliente adicionou um par de sapatos vermelhos ao carrinho, gostaria de mostrar essa cor no carrinho de compras.

Eu configurei "Mostrar a miniatura do produto em si"

O problema é esta função de uma extensão de amostra de cor

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

no modelo colorselectorplus/cart/item/default.phtml

findColorImage ($ _ item-> getProductId (), $ product_base, 'cor', 'imagem'); ?>

Que está sendo chamado a partir de Helper / Data.php, por algum motivo, retorna apenas a imagem Base do produto e ignora a imagem correta da cor.

Eu tentei mudar imagepara usar, thumbnailmas não estou tendo nenhuma alegria ...

Algum outro desenvolvedor encontrou esse problema com esta extensão e conseguiu corrigi-lo?

Eu não me importaria nem uma correção quente agora ...

user1704524
fonte

Respostas:

10

Ir para admin>System>Configuration>Checkout>Shopping Cart>Configurable Product Imagetorná-lo Product Thumbnail Itselfcriar imagem do produto filho Em vez de enviar

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

para o produto configurável $ _Item> getSku, dê outra vez ao produto filho outro produto. então apenas produto filho usando o item sku

Eu acho que você usou extensões de terceiros, então eu mudei algumas mudanças de acordo com minha mudança de conceito

Etapa 1 : em vez dissoof send product send all item object

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

para

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

Etapa 2 : alguma alteração na função

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
fonte
Obrigado por seus comentários. Já mencionei neste post que eu já tenho que sim ...
user1704524
desculpas, mas não é muito claro o que você quer dizer ???
user1704524