So erhalten Sie ein Produktbild für Kinder in Magento Cart

10

Ich versuche, das untergeordnete Produktbild eines konfigurierbaren Produkts abzurufen, das vom Kunden in den Warenkorb gelegt wurde.

Wenn der Kunde beispielsweise ein Paar rote Schuhe in den Warenkorb gelegt hat, möchte ich diese Farbe im Warenkorb anzeigen.

Ich habe "Produkt anzeigen Thumbnail Itself" eingestellt

Das Problem ist diese Funktion aus einer Farbfelderweiterung

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

in der Vorlage colorselectorplus/cart/item/default.phtml

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

Was aus irgendeinem Grund von Helper / Data.php aufgerufen wird, gibt nur das Basisbild für das Produkt zurück und ignoriert das richtige Bild für die Farbe.

Ich habe versucht image, die Verwendung zu ändern , thumbnailaber ich habe keine Freude ...

Ist ein anderer Entwickler auf dieses Problem mit dieser Erweiterung gestoßen und hat es geschafft, es zu beheben?

Ich hätte jetzt nichts dagegen, auch nur einen Hotfix zu machen ...

user1704524
quelle

Antworten:

10

Gehen admin>System>Configuration>Checkout>Shopping Cart>Configurable Product ImageSie zu Product Thumbnail Itselfdiesem untergeordneten Produktbild, anstatt es zu senden

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

Für konfigurierbares Produkt $ _Item> getSku geben Sie dem untergeordneten Produkt ein anderes Mal die Hauptprodukte. Also nur Kinderprodukt mit Item Sku

Ich denke, Sie haben eine Drittanbieter-Erweiterung verwendet, daher habe ich einige Änderungen gemäß meiner Konzeptänderung vorgenommen

Schritt 1 : stattdessenof send product send all item object

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

zu

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

Schritt 2 : Einige Funktionsänderungen

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
quelle
Vielen Dank für Ihre Kommentare. Ich habe in diesem Beitrag erwähnt, dass ich das schon zu ja habe ...
user1704524
Entschuldigung, aber es ist nicht ganz klar, was du meinst ???
user1704524