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.