Magento: L'attribut renvoie toujours la valeur par défaut en mode catalogue, fonctionne très bien en vue du produit

StackOverflow https://stackoverflow.com/questions/3009749

Question

J'ai créé un nouveau Oui / Non attribut pour les produits. J'ai étendu le modèle de produit pour faire une logique personnalisée et les fonctions personnalisées travaillons partout.

Quand j'ai d'abord essayé d'obtenir la valeur d'attribut personnalisé, je suis tombé sur une question. Magento n'a pas été le charger pour moi, afin que les appels à $ product-> getMyAttributeName () n'a rien fait. Dans les vues de ce produit, je l'ai eu à travailler avec cette fonction supplémentaire:

public function getAttrVal($attr_name)
{
    return $this->getResource()->getAttribute($attr_name)->getFrontend()->getValue($this);
}

qui a très bien fonctionné lors de la visualisation d'un produit sur le frontend. Il allait chercher la valeur attribuée si elle est définie, ou la valeur par défaut sinon.

Quand je regarde toute catégorie (grille de tous les produits de cette catégorie), exactement le même code est en cours d'exécution. Mais ma fonction getAttrVal () retourne toujours la valeur par défaut, même si je me suis fixé explicitement cette valeur pour mon produit.

Je ne peux pas, pour la vie de moi, de savoir pourquoi les charges d'attributs correctement dans la vue du produit, mais la vue Catégorie saisit toujours la valeur par défaut, en dépit de l'exécution du même code. Toute pensée?

Était-ce utile?

La solution

Parce que Magento utilise un modèle EAV pour ses attributs de catalogue extensible, pas tous les attributs peut être reporté sur chaque page. Essayez de jouer avec le « affiché dans le catalogue » et d'autres variables connexes sur l'attribut, et il peut résoudre votre problème. Sinon, dites et nous pouvons essayer d'autres choses.

L'espoir qui aide!

Merci, Joe

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top