Question

Je dois trouver un moyen d'afficher la valeur d'un attribut personnalisé à la place du " Nom du produit " indiqué dans l'image ci-dessous.

 Table de produits groupés
(source: magentocommerce.com )

Je travaille avec /app/design/frontend/default/defaultx/template/catalog/product/view/type/grouped.php

Le code ci-dessous ne fonctionne pas (l'attribut personnalisé est yearmade):

<?php if (count($_associatedProducts)): ?>  
<?php foreach ($_associatedProducts as $_item): ?>  
    <tr>  
        <td><?php echo $this->htmlEscape($_item->getYearmade()) ?></td>

Toute aide serait appréciée.

EDIT: La réponse s’est donc révélée assez simple. Vous voyez que ce que j’ai omis de mentionner ci-dessus, c’est que il y avait en effet une sortie ... mais qu’il s’agissait simplement d’un nombre (par exemple: 52). Il s’est avéré que c’était l’ID de cette valeur d’attribut personnalisé (c’était un type d’attribut personnalisé de type liste déroulante).

Donc en résumé
Cela fonctionne pour les attributs personnalisés de type texte:

echo $this->htmlEscape($_item->getYearmade())

Mais pour tous les autres types d'attributs personnalisés (je pense), les éléments suivants doivent être utilisés:

echo $this->htmlEscape($_item->getAttributeText('yearmade'))

Je n’aurais pas découvert cela sans la réponse la plus excellente fournie par Alan Storm, ci-dessous. Merci monsieur.

Était-ce utile?

La solution

Tous les modèles Magento ont un " getData " méthode disponible, qui retournera un tableau php de paires clé / valeur. Essayez ceci en haut de votre fichier grouped.phtml (après avoir défini $ _product)

print('<pre>');print_r($_product->getData());print('</pre>');

Vous devriez voir un résultat ressemblant à ce qui suit.

Array
(
    [store_id] => 1
    [entity_id] => 3437
    [entity_type_id] => 4
    [attribute_set_id] => 27
    [type_id] => grouped
    [sku] => 
    [category_ids] => 
    [created_at] => 2009-04-16 03:37:51
...     

Vous pouvez donc saisir un tableau de propriétés et en extraire la clé. Vous pouvez également utiliser les méthodes pratiques / magiques getX et setX de Magento. Sur tous les modèles Magento, vous pouvez accéder à n’importe quelle propriété du tableau de données en appelant une méthode basée sur la version du cas du chameau du nom,

.
$created_at = $_product->getCreatedAt();
$_product->setCreatedAt($date);

Ainsi, quel que soit le nom de votre attribut personnalisé, vous devriez pouvoir y accéder à l'aide de ce qui précède, et si vous n'êtes pas sûr que print_r ou var_dump, le contenu du tableau renvoyé par getData ().

Enfin, si l'attribut personnalisé se trouve sur l'un des produits simples du produit associé, vous voudrez quelque chose qui ressemble davantage à

.
$_associatedProducts[0]->getCreatedAt();

Autres conseils

J'ai eu le même problème.

  1. Vous devez localiser grouped.phtml app/design/frontend/base/default/template/catalog/product/view/type/grouped.phtml

  2. Obtenir l'item, exemple $_item[units]

  3. Ajouter une cellule dans la table et coller echo $_item['units'];

  4. C'est tout:)

De ver. 1.3. et dans la version 1.4 également, vous devez utiliser $ _ item et non Produit $ _ . Pour moi, cela fonctionne également dans les tables groupables.

Exemple:

<?php echo $_item->getAttributeText('your attribute'); ?>

Certains plug-ins peuvent résoudre votre solution très facilement. Vous pouvez trouver le plugin ici qui prend les options de produit et les affiche dans une grille: http: // www.magemechanics.com/product-grid-options.html

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