Cómo obtener la imagen del producto infantil en el carrito de Magento

10

Estoy tratando de obtener la imagen del producto secundario de un producto configurable que el cliente agregó al carrito.

Por ejemplo, si el cliente agregó un par de zapatos rojos al carrito, me gustaría mostrar ese color en el carrito de compras.

He configurado "Mostrar miniatura de producto en sí"

El problema es esta función de una extensión de muestra de color

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

en la plantilla colorselectorplus/cart/item/default.phtml

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

Que se llama desde Helper / Data.php por alguna razón, solo devuelve la imagen Base para el producto e ignora la imagen correcta para el color.

He intentado cambiar imagede uso thumbnailpero no tengo ninguna alegría ...

¿Algún otro desarrollador se encontró con este problema con esta extensión y logró solucionarlo?

No me importaría ni siquiera una solución en este momento ...

usuario1704524
fuente

Respuestas:

10

Ir a admin>System>Configuration>Checkout>Shopping Cart>Configurable Product Imagehacer Product Thumbnail Itselfesto hacer imagen del producto hijo En lugar de enviar

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

para el producto configurable $ _Item> getSku dale un producto hijo en otro momento dale los productos principales. así que solo producto hijo usando el artículo sku

Supongo que ha usado una extensión de terceros, así que he cambiado algunos cambios de acuerdo con mi cambio de concepto

Paso 1 : en cambioof send product send all item object

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

a

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

Paso 2 : algún cambio en la función

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
fuente
Gracias por tus comentarios. He mencionado en este post que ya tengo que a sí ...
user1704524
disculpas pero no está muy claro a qué te refieres ???
user1704524