Ich versuche, Produktdetails einschließlich des Werts für benutzerdefinierte Produktoptionen in einem von mir erstellten benutzerdefinierten Block abzurufen. Dies ist der Code, den ich auf der Produktdetailseite verwendet habe und der dort funktioniert hat. Wenn ich jedoch versuche, ihn auf einer benutzerdefinierten Blockseite zu verwenden, gibt get Options einen leeren Wert zurück.
if ($ _product-> getId ()) { foreach ($ _product-> getOptions () als $ opt) { echo $ optionType = $ opt-> getType (); if ($ optionType == 'drop_down') { $ values = $ opt-> getValues (); foreach ($ Werte als $ v) { $ mydata = $ v-> getTitle (); print_r ($ mydata); }} }} }} }}
Ich bin neu in Magento, also nicht sicher, was ich hier verpasse.
Kann mir bitte jemand einen Hinweis geben
Danke
magento-1.9
product
custom-options
custom-block
Shivika Sharma
quelle
quelle
Antworten:
Versuche dies:
quelle
Das Problem ist, dass das Produkt nicht vollständig in Ihren Block geladen ist. Die
load()
Methode stellt sicher, dass alle Informationen eines Objekts geladen werden. Wenn Sie nurloadByAttribute()
eine Sammlung verwenden, ist dies nicht der Fall.Ein Beispiel wäre:
$product = Mage::getModel('catalog/product')->load($productId);
Wenn Sie mehrere Produkte anzeigen möchten, sollten Sie die Verwendung jedoch vermeiden,
load()
da dies einen starken negativen Einfluss auf die Leistung hat. Es tut mir leid, dass ich Ihnen beim Hinzufügen von Optionen zu einer Sammlung nicht helfen kann.quelle