2010-06-09 3 views
1

J'ai créé un nouvel attribut Oui/Non pour les produits. J'ai étendu le modèle de produit pour faire une certaine logique personnalisée et les fonctions personnalisées fonctionnent partout.Magento: Attribut renvoie toujours la valeur par défaut dans la vue catalogue, fonctionne très bien dans la vue du produit

Lorsque j'ai essayé d'obtenir la valeur de l'attribut personnalisé, j'ai rencontré un problème. Magento ne le chargeait pas pour moi, donc les appels à $ product-> getMyAttributeName() n'ont 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); 
} 

Alors que fonctionnait très bien lors de la visualisation d'un produit sur le frontend. Il irait chercher la valeur assignée si elle est définie, ou la valeur par défaut si ce n'est pas le cas.

Lorsque je vois une catégorie (grille de tous les produits dans cette catégorie), le même code exact est en cours d'exécution. Mais ma fonction getAttrVal() renvoie toujours la valeur par défaut, même si j'ai explicitement défini cette valeur pour mon produit.

Je ne peux pas, pour la vie de moi, comprendre pourquoi l'attribut se charge correctement dans la vue Produit, mais la vue Catégorie saisit toujours la valeur par défaut, malgré l'exécution du même code exact. Des pensées?

Répondre

1

Parce que Magento utilise un modèle EAV pour ses attributs de catalogue extensibles, tous les attributs ne peuvent pas être reportés 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-le et nous pouvons essayer d'autres choses.

Espérons que ça aide!

Merci, Joe

+0

Eh oui, qui l'a fait. Je pensais que cela montrerait aussi la valeur, pas seulement le charger dans le modèle. Merci!! –

Questions connexes