Magentoカートで子商品の画像を取得する方法


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が、何の喜びもありません...

他の開発者がこの拡張機能でこの問題に遭遇し、なんとかそれを修正できましたか?

今はホットフィックスでもかまいません...

回答:


10

後藤はadmin>System>Configuration>Checkout>Shopping Cart>Configurable Product Imageそれ作るProduct Thumbnail Itselfこのメイク子製品画像の代わりに送信します

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

構成可能な製品の場合、$ _ Item> getSkuは子製品を提供し、もう一度メイン製品を提供します。だからアイテムskuを使用した子製品だけ

サードパーティの拡張機能を使用したと思いますので、コンセプトの 変更に応じて変更を加えました。

ステップ1:代わりにof send product send all item object

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

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

Step2:機能の変更

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 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.