2010-04-30 5 views
7

J'ai un problème avec l'affichage des attributs personnalisés du produit. J'ai lu toutes les ressources via google mais toujours pas de succès. Le problème est que je dois montrer l'attribut de taille du produit configurable sur la grille de catégorie et la vue de liste. Chaque solution sur Google a proposé quelque chose commeMagento et attributs de produit configurables

$_product->getAttributeText('size') 

mais j'ai fini à une seule chaîne - « S » ou « M » au lieu d'un tableau. Comment puis-je récupérer toutes les tailles possibles de tous les produits simples qui appartiennent à un produit configurable particulier sans trop de tracas?

MISE À JOUR

Après solution à l'aide proposée par Joseph Mastey j'ai rencontré un autre problème. J'ai réussi à montrer toutes les options possibles pour l'attribut donné, mais maintenant je dois montrer seulement ces options qui sont disponibles pour acheter. Par exemple, si la taille du t-shirt L est en rupture de stock ou est désactivée, l'option L ne doit pas être affichée. Comment puis-je résoudre ce problème?

+0

Avez-vous déjà trouvé une solution pour cela? Je suis confronté au même problème. – Luke

Répondre

18

Lorsque vous traitez avec des produits configurables (ou chaque fois que vous traitez un concept pour un seul type de produit, comme les attributs configurables le sont), vous travaillerez probablement avec getTypeInstance. Voir ci-dessous, je prends les attributs configurables pour le produit, puis trouve celui pour la taille. Vous pouvez également parcourir tous les attributs configurables si vous le souhaitez. Ou si la taille est le seul attribut configurable, ignorez simplement if().

$attrs = $_product->getTypeInstance(true)->getConfigurableAttributesAsArray($_product); 
foreach($attrs as $attr) { 
    if(0 == strcmp("size", $attr['attribute_code'])) { 
     $options = $attr['values']; 
     foreach($options as $option) { 
      print "{$option['store_label']}<br />"; 
     } 
    } 
} 

Espérons que ça aide! Merci,

Joe

+0

Merci beaucoup pour votre aide. Il n'y avait qu'un seul problème, getConfigurableAttributesAsArray devait être appelé avec le paramètre $ _product. – artega

Questions connexes