Supposons que j'ai un attribut qui est une collection d'options (liste déroulante / multisélection).
Je peux récupérer la valeur d'attribut pour un produit donné:
$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 = ???
Maintenant, j'ai obtenu l'attribut option_id qui est une valeur numérique ...
... Quelle est la meilleure façon de charger l'étiquette d'attribut frontend pour ma valeur d'attribut? (sans charger le produit complet)
La solution remercie 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')
ne fonctionne pas correctement si lagetAllOptions()
méthode de l'attribut renvoie des options arrangées avec des tableaux imbriqués, (exprimées comme un<optgroup>
dans la liste déroulante.)Réponses:
En plus de votre code, mettez ceci:
la source
la source