Come ottenere l'attributo "etichetta opzione / testo attributo" con "valore attributo" (option_id)?


18

Supponiamo che io abbia un attributo che è una raccolta di opzioni (menu a discesa / selezione multipla).

Posso recuperare il valore dell'attributo per un determinato prodotto:

$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 = ???

Ora, ho ottenuto l'attributo option_id che è un valore numerico ...

... Qual è il modo migliore per caricare l'etichetta dell'attributo frontend per il mio valore di attributo? (senza caricare l'intero prodotto)

Soluzione grazie 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);

2
Perché questa domanda viene posta più volte dall'autore esatto e tutti confondono gli utenti. Possiamo contrassegnare come duplicati come queste domande senza risposte corrette? Questa domanda di magento.stackexchange.com/questions/3003 fornita dall'autore non è una risposta corretta, ma perché i voti positivi (e la propria risposta)! Anche questo magento.stackexchange.com/questions/976 è lo stesso. Forse la mia richiesta non è giusta, ma una domanda, un autore e nessuna risposta. Per favore, mantieni la qualità del sito. Grazie.
mago Uz,

Ho migliorato l'altra domanda aggiungendo la soluzione @Marius magento.stackexchange.com/questions/3003/…
Fra

1
Si noti che almeno in Magento CE 1.9 e EE 1.14 e precedenti, getAttributeText('value')non funziona correttamente se il getAllOptions()metodo dell'attributo restituisce opzioni disposte con matrici nidificate, (espresse come un <optgroup>elenco a discesa.)
Tyler V.

Risposte:


49

Oltre al tuo codice metti questo:

$product = Mage::getModel('catalog/product')
                ->setStoreId($store_id)
                ->setBrand($brand_value); // not loading the product - just creating a simple instance
$brandLabel = $product->getAttributeText('brand');

9
$attribute = Mage::getModel('catalog/resource_eav_attribute')
            ->loadByCode(Mage_Catalog_Model_Product::ENTITY, 'manufacturer');
$label     = $attribute->getFrontendLabel();

1
Ho confuso per "etichetta dell'attributo frontend", per favore, correggi la domanda. Non "etichetta attributo", si tratta di "etichetta opzione" o "testo attributo"
mageUz
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.