Freelance Magento // 2ème année de Master MIAGE – Toulouse
Dans: Magento
17 nov 2009Pour afficher des attributs spécifiques sous Magento, soit on met l’attribut « visible » en back-office pour qu’il s’affiche dans le tableau de la fiche produit, soit on écrit dans le template list.phtml.
Vous pouvez donc afficher la référence du produit à l’endroit voulu.
<?php echo $_product->getData('sku'); ?>
Instruction pratique pour afficher les attributs ayant une liste déroulante comme les marques par exemple.
<?php echo $_product->getAttributeText('manufacturer')?>
Confronté récemment à un attribut ayant une sélection multiple (pour des labels biologiques par exemple), il faut effectuer une boucle sur l’attribut :
<?php foreach($_product->getAttributeText('labels') as $label): ?>
<?php echo $label ?>
<?php endforeach ?>
Cette instruction permet d’afficher le titre (le libellé) de l’attribut
<?php echo $_product->getResource()->getAttribute('conseil_utilisation')->getFrontend()->getLabel($_product) ?>
Voici une instruction permettant aussi d’afficher un attribut simple
$_product->getResource()->getAttribute('club_type')->getFrontend()->getValue($_product)
Pour afficher des stickers (-10% / -20% / …) dans les listings des produits, je me sers de cette méthode beaucoup plus propre pour afficher les attributs personnels (ou en liste déroulante) dans cet article.
Méthode Bourrin : La requette SQL avec Jointure pour afficher l’attribut color par exemple :
$color = $_product->getData('color');
$store_id = $_product->getData('store_id');
$resource = Mage::getSingleton('core/resource');
$read= $resource->getConnection('core_read');
$userTable = $resource->getTableName('eav_attribute_option_value');
$select = $read->select() ->from('eav_attribute_option_value', array('value')) ->where('store_id = ?', $store_id) ->where('option_id = ?', $color);
$retour_color = $select->query(); $result_color = $retour_color->fetchAll();
// Affiche la valeur de l'attribut color
echo $result_color[0]['value'];
Pour compléter cet article, voici un lien assez intéressant permettant d’afficher tous les attributs automatiquement, etc.
Je m'appelle Frédéric Martinez.
Je suis étudiant en Master MIAGE à Toulouse et Freelance Magento.
Ce site présente mon CV ainsi que mes réalisations professionnelles, personnelles et universitaires.
11 Commentaires pour Affichage des attributs et des libellés sous Magento
solidesnakerz
décembre 15th, 2009 à 19 h 23 min
Super Merci ! Le gros coup de pouce de la journée.
En revanche peux t-on récupérer un attribut images de l’image gallery pour afficher le logo d’une marque par exemple.
Merci d’avance!
Bachir
janvier 12th, 2010 à 18 h 29 min
Salut,
est-ce que quelqu’un a une réponse à ça…? c’est-à dire pour afficher le logo d’une marque.
merci
Frédéric Martinez
janvier 15th, 2010 à 1 h 39 min
@solidesnakerz & @Bachir :
L’attribut « Marque » (manufacturer) n’est composé que d’un libellé ainsi que de sa valeur. Il est impossible en l’état de rajouter une image.
3 solutions :
1) La solution la plus facile est de créer une nouvelle arborescence de catégories et de la nommer « Marques », vous pouvez ainsi ajouter simplement vos images. Du développement concernant l’affichage de vos nouvelles catégories est à prévoir.
2) Ajout les images à l’attribut « Manufacturer » :
=> Du développement (long) ou un module à installer (j’ai l’ai déjà vu passé sur un site Magento. Je ne sais plus s’il était payant)
3) Chaque valeur de marque est un nom du fichier image. Et votre template ira chercher l’image dans le dossier de votre choix. Problème : il faut ajouter/modifier/supprimer via FTP. Solution hyper facile à mettre en place cependant.
William
février 10th, 2010 à 12 h 00 min
Bonjour tout le monde,
J’espere sincèrement trouver une réponse au problème que je rencontre.
J’ai mis en place hier l’affichage de stickers (-10% / -20% / …) dans les listings des produits.
La méthode devant permettre de récupérer la valeur de l’option courante sur un produit de se fait pas.
Il s’agit de la méthode suivante: « $_product->getAttributeTex(’promonew’) ».
Pour ce code attribut « promonew » dont le titre ou libellé est « badge », j’ai deux options. Pour chaque produit, je peux avoir une ou option sélectionnée ou aucune. Mais impossible de récupérer donc la valeur courante de l’option.
Tout ce que je parvient à récupérer c’est le libellé (titre de l’attribut) via la methode « $_product->getResource()->getAttribute(’conseil_utilisation’)->getFrontend()->getLabel($_product) »
J’ai également essayé avec cette méthode => « $_product->getResource()->getAttribute(’club_type’)->getFrontend()->getValue($_product) » mais cela ne donne rien non plus.
Y aurait il parmis vous une personne qui serait en mesure de m’aider?
En vous remerciant par avance.
William
Frédéric Martinez
février 10th, 2010 à 12 h 13 min
Bonjour William,
1) Il me semble que vous vous êtes trompés dans le nom de la méthode :
« $_product->getAttributeText(’promonew’) » et Non « $_product->getAttributeTex(’promonew’) »
2) Pour les choix multiples, il faut boucler sur votre attribut. Commencez par dumper votre variable. Ensuite vous n’avez plus qu’à poser un foreach pour parcourir son contenu.
Julien
mars 27th, 2010 à 18 h 50 min
bonjour, dans la liste de produit d’une catégoriesur mon site je voudrais bien faire aparaitre la pastille de stock, comme dans la fiche d’un produit j’ai réussi a afficher le le nom de l’attribu stockcouleur mais pas la pastille de couleur qui va avec la reponse de a liste déroulante.
je vous remercie.
Frédéric Martinez
mars 28th, 2010 à 17 h 46 min
Comme dans l’article que j’ai cité (http://goo.gl/40xa), regardez la fin du tutoriel, il faut faire une balise span avec comme classe la valeur de votre attribut. Ensuite en CSS, vous affichez votre vignette.
Terzi
mai 5th, 2010 à 14 h 28 min
Bonjour,
Déjà Merci pour votre blog, je n’arrive pas à afficher des options de mon attribut d’un produit configurable sur le listage des produits « list.phtml »
Le code ci-dessous ne me renvois rien :
getAttributeText(’manufacturer’)?>
J’ai du loupé quelque chose ? des idées ?
En vous remerciant par avance.
SebTerzi
cocobello
mai 17th, 2010 à 13 h 44 min
Bonjour,
Je fais des bijoux à graver.
est-ce qu’il est possible de mettre un attribut : avec gravure/sans gravure. en dessous une case vide avec le texte à graver?!?
Je cherche dans tous les guides et forum, toujours pas trouver comment faire pour la case à remplir par le client….
Merci si vous avez une idée!
Frédéric Martinez
mai 17th, 2010 à 13 h 51 min
Bonjour,
Pour rajouter un champ personnalisé (pour le client), il faut ajouter une « Option Personnalisable » (dernier onglet de la sidebar de gauche dans une fiche produit en back-office).
A partir de là, vous pouvez restreindre la saisie (champ / textarea / coût supplémentaire / etc…)
Bonne continuation.
Frédéric.
cocobello
mai 20th, 2010 à 14 h 31 min
Rebonjour,
où configure-t-on « contactez-nous » sur Magento.
J’ai rentré mes adresses mails dans Système configuration, « adresse mail du magasin » et , « contacts ».
Mais quand j’envoie un mail, voilà la réponse… »Impossible d’envoyer votre demande. Veuillez réessayer plus tard. »
Faut-il rentrer quelquechose dans avancé, système, « serveur »?
Merci beaucoup.
Nathalie