Как получить изображение детского товара в Magento Cart

10

Я пытаюсь получить образ дочернего продукта настраиваемого продукта, который был добавлен в корзину покупателем.

Например, если покупатель добавил в корзину пару красных туфель, я бы хотел показать этот цвет в корзине.

Я установил "Показать само изображение"

Проблема в том, что эта функция из расширения цветового образца

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

в шаблоне colorselectorplus/cart/item/default.phtml

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

Который вызывается из Helper / Data.php по какой-то причине, он возвращает только базовое изображение для продукта и игнорирует правильное изображение для цвета.

Я пытался изменить, imageчтобы использовать, thumbnailно у меня нет никакой радости ...

Кто-нибудь другой разработчик сталкивался с этой проблемой с этим расширением и сумел это исправить?

Я бы не возражал, даже сейчас.

user1704524
источник

Ответы:

10

Перейти, admin>System>Configuration>Checkout>Shopping Cart>Configurable Product Imageчтобы сделать Product Thumbnail Itselfэто сделать дочерний продукт изображение вместо отправки

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

для настраиваемого товара $ _Item> getSku отдайте дочернему товару, а в другой раз отдайте основным товарам. так что просто детский продукт, использующий артикул

Я думаю, что вы использовали стороннее расширение, поэтому я изменил некоторые изменения в соответствии с моей концепцией изменения

Шаг 1 : вместоof send product send all item object

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

в

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

Шаг 2 : некоторые изменения в функции

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;
}
Амит Бера
источник
Спасибо за ваши комментарии. Я упоминал в этом посте, что у меня уже есть что да ...
user1704524
извинения, но не совсем понятно, что вы имеете в виду ???
user1704524