2016-05-19 7 views
2

In App/code/lokal/Mage/Katalog/Produkt/Typ/Configurable/Price.php, ich versuche, die Attributwerte eines zugeordneten Produkts zu bekommen die Wunschliste. Ich habe mehrere Ansätze versucht, aber ich kann nur scheinen, Daten für das Elternprodukt zu produzieren.Magento - Holen Sie sich die zugehörigen Produktattribute eines Artikels in der Wunschliste

Neueste Versuch

$customer = Mage::getSingleton('customer/session')->getCustomer(); 
    if($customer->getId()) { 
     $wishlist = Mage::getModel('wishlist/wishlist')->loadByCustomer($customer, true); 
     $wishListItemCollection = $wishlist->getItemCollection(); 
     foreach ($wishListItemCollection as $wlitem) { 
      $wishitem = Mage::getModel('catalog/product')->setStoreId($wlitem->getStoreId())->load($wlitem->getProductId()); 
      //echo $wishitem->getId() . '<br>'; 
      if($product->getId() == $wishitem->getId()) { //if the current product id equals the wishlist product id 
       echo $wishitem->getSku()."</br>"; 
      } 
     } 
    } 

Das bringt mich nur das übergeordnete Produkt sku. Was ich letztendlich erhalten möchte, ist der Attributwert für 2 Attribute, die ich für konfigurierbare Produkte hinzugefügt habe (nicht Superattribute), aber es scheint, dass $ product in Price.php nur die Elternproduktsammlung hat.

Andere Versuche:

  $item_s = Mage::getModel('wishlist/item')->loadWithOptions($product->getId(), 'simple_product')->getOptionsByCode(); 
      $simple_product = $item_s['simple_product']->getData(); 
      $simple_product_id = $simple_product['product_id']; 
      $sim_product = Mage::getModel('catalog/product')->load($simple_product_id); 
      print_r($sim_product); 

Dies führte nur zu einem Fehler auf der Seite.

auch:

$_item = Mage::getModel('catalog/product')->load($product->getId()); 
    //echo $_item->getData('ppuom'); 
    //print_r($_item); 
    $simpleProduct = $_item->getOptionsByCode()['simple_product']->getItem()->getProduct(); 
    print_r($simpleProduct); 
+0

Welche anderen Versuche haben Sie unternommen? – berg37

+0

@ berg37 Ich werde meine Frage mit anderen Versuchen aktualisieren. – NotJay

Antwort

2

scheint, als ob Sie die meisten der Weg dorthin waren. Ich habe das auf meiner Magento-Site getestet und es hat für mich funktioniert. Es ist ziemlich einfach, Sie müssen nur das richtige Modell für diese Sammlung greifen. Außerdem scheint es, dass Sie die Preise ändern?!?! Achten Sie darauf, dass Ihre Artikel in der Wunschliste die notwendigen Attribute enthalten, die in Ihrer Logik verwendet werden.

$_item = Mage::getModel('catalog/product')->load($product->getId()); 
$attribute1 = $_item->getData('attribute1_code'); //see admin for attribute code 
$attribute2 = $_item->getData('attribute2_code'); //see admin for attribute code 

ODER

Änderungen an der Vorlage der Wunschliste Dateien anstatt die Preislogik im Code-Ordner. Sie haben Zugriff auf alle Daten, die Sie benötigen, und es wird nicht in die price.php-Datei eingreifen, auf die sich der Einkaufswagen und andere kritische Bereiche der Website verlassen. Der Preis in der Wunschliste wird neu berechnet, wenn er trotzdem in den Einkaufswagen verschoben wird.

+0

Hmmm ... Ich werde das versuchen, aber es sieht so aus, als würde dies nur die Attributwerte für das Elternprodukt zurückgeben. Ich suche nach den Kinderproduktwerten. – NotJay

+0

Das erhält tatsächlich die Werte für das konfigurierbare (übergeordnete) Produkt, nicht das zugehörige (untergeordnete) Produkt. Hast du eine andere Lösung? – NotJay

+1

Anstatt mit Price.php herumzuspielen ... warum machst du dich nicht mit der Wunschliste-Vorlage herum? ALLE Informationen, die Sie für das Produkt benötigen, sollten für Sie bereitstehen. Wenn der Kunde den Artikel zum Warenkorb hinzufügt, wird die Datei Price.php entsprechend berechnet. Ist das sinnvoll? – berg37