Załóżmy, że mam atrybut, który jest zbiorem opcji (rozwijane / wielokrotnego wyboru).
Mogę pobrać wartość atrybutu dla danego produktu:
$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 = ???
Teraz mam atrybut option_id, który jest wartością liczbową ...
... Jaki jest najlepszy sposób załadowania etykiety atrybutu frontonu dla mojej wartości atrybutu? (bez ładowania pełnego produktu)
Rozwiązanie dzięki 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);
getAttributeText('value')
nie działa poprawnie, jeśligetAllOptions()
metoda atrybutu zwraca opcje ułożone w zagnieżdżone tablice (wyrażone jako<optgroup>
rozwijane).Odpowiedzi:
Oprócz kodu umieść to:
źródło
źródło