Bagaimana cara mendapatkan atribut "label opsi / teks atribut" yang memiliki "nilai atribut" (option_id)?


18

Misalkan saya memiliki atribut yang merupakan kumpulan opsi (dropdown / multiselect).

Saya dapat mengambil nilai atribut untuk produk yang diberikan:

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

Sekarang, saya mendapat atribut option_id yang merupakan nilai numerik ...

... Apa cara terbaik untuk memuat label atribut frontend untuk nilai atribut saya? (tanpa memuat produk lengkap)

Solusi terima kasih, 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
Mengapa pertanyaan ini diberikan beberapa kali oleh penulis yang tepat dan semuanya membingungkan pengguna. Bisakah kita menandai sebagai duplikat seperti pertanyaan ini tanpa jawaban yang benar? Ini magento.stackexchange.com/questions/3003 pertanyaan yang diberikan oleh penulis adalah tidak ada jawaban yang benar, tapi mengapa upvotes (dan diberikan jawaban sendiri)! Ini magento.stackexchange.com/questions/976 juga sama. Mungkin permintaan saya tidak benar, tetapi satu pertanyaan, satu penulis dan tidak ada jawaban. Tolong, jaga kualitas situs. Terima kasih.
— mageUz

Saya telah memperbaiki pertanyaan lain dengan menambahkan solusi @Marius magento.stackexchange.com/questions/3003/…
— Fra

1
Perhatikan bahwa setidaknya di Magento CE 1.9 dan EE 1.14 dan di bawahnya, getAttributeText('value')tidak berfungsi dengan benar jika metode atribut getAllOptions()mengembalikan opsi yang diatur dengan array bersarang, (dinyatakan sebagai <optgroup>dalam dropdown.)
— Tyler V.

Jawaban:


49

Selain kode Anda cantumkan:

$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
Saya bingung untuk "label atribut frontend", mohon perbaiki pertanyaannya. Bukan "label atribut", ini "label opsi" atau "teks atribut"
— mageUz
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.