Wie erhalte ich das Attribut "Optionsbezeichnung / Attributtext" mit "Attributwert" (option_id)?

18

Angenommen, ich habe ein Attribut, das eine Sammlung von Optionen ist (Dropdown / Mehrfachauswahl).

Ich kann den Attributwert für ein bestimmtes Produkt abrufen:

$store_id = [something];
$productId = [something];
// this is a select/multiselect
$attribute_code = [something]; 

$option_id = Mage::getResourceModel('catalog/product')->getAttributeRawValue($productId, $attribute_code, $store_id );
$option_label = ???

Jetzt habe ich das Attribut option_id, das ein numerischer Wert ist ...

... Wie lade ich die Frontend-Attributbezeichnung für meinen Attributwert am besten? (ohne das vollständige Produkt zu laden)

Lösung danke Marius :

// Not loading the product - just creating a simple instance
$product = Mage::getModel('catalog/product')
->setStoreId($store_id)
->setData($attribute_code,$option_id); 
$option_label = $product->getAttributeText($attribute_code);
Fra
quelle
2
Warum diese Frage mehrmals vom genauen Autor gestellt wird und alle Benutzer verwirren. Können wir diese Fragen ohne korrekte Antworten als doppelt kennzeichnen? Diese Frage von magento.stackexchange.com/questions/3003 des Autors ist keine richtige Antwort, aber warum Upvotes (und eigene Antwort gegeben)! Dieses magento.stackexchange.com/questions/976 ist auch dasselbe. Vielleicht ist meine Anfrage nicht richtig, aber eine Frage, ein Autor und keine Antworten. Bitte behalten Sie die Qualität der Seite. Vielen Dank.
mageUz
Ich habe die andere Frage verbessert und die @Marius-Lösung magento.stackexchange.com/questions/3003/…
Fra
1
Beachten Sie, dass zumindest in Magento CE 1.9 und EE 1.14 und darunter getAttributeText('value')keine ordnungsgemäßen Funktionen ausgeführt werden, wenn die getAllOptions()Methode des Attributs Optionen zurückgibt, die mit verschachtelten Arrays angeordnet sind (ausgedrückt als <optgroup>in der Dropdown-Liste).
Tyler V.

Antworten:

49

Geben Sie zusätzlich zu Ihrem Code Folgendes ein:

$product = Mage::getModel('catalog/product')
                ->setStoreId($store_id)
                ->setBrand($brand_value); // not loading the product - just creating a simple instance
$brandLabel = $product->getAttributeText('brand');
Marius
quelle
9
$attribute = Mage::getModel('catalog/resource_eav_attribute')
            ->loadByCode(Mage_Catalog_Model_Product::ENTITY, 'manufacturer');
$label     = $attribute->getFrontendLabel();
mageUz
quelle
1
Ich habe für "Frontend Attribut Label" verwirrt, bitte korrigieren Sie die Frage. Nicht "Attributbezeichnung",
sondern