Domanda

Devo trovare un modo per mostrare il valore di un attributo personalizzato al posto del " Nome prodotto " mostrato nell'immagine qui sotto.

 Tabella dei prodotti raggruppati
(fonte: magentocommerce.com )

Sto lavorando con /app/design/frontend/default/defaultx/template/catalog/product/view/type/grouped.php

Il codice seguente non funziona (l'attributo personalizzato è creato per anno):

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

Qualsiasi aiuto sarebbe apprezzato.

EDIT: Quindi la risposta si è rivelata abbastanza semplice. Vedete quello che non ho menzionato sopra era che era effettivamente prodotto ... ma che era solo un numero (ad esempio: 52). Si è scoperto che questo era l'ID per quel valore dell'attributo personalizzato (era un tipo di attributo personalizzato a discesa).

Quindi in sintesi
Funziona con attributi personalizzati di tipo text:

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

Ma per tutti gli altri tipi di attributo personalizzato (penso), si dovrebbe usare quanto segue:

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

Non l'avrei scoperto senza la risposta più eccellente fornita da Alan Storm, di seguito. Grazie signore.

È stato utile?

Soluzione

Tutti i modelli Magento hanno un " getData " metodo disponibile, che restituirà un array php di coppie chiave / valore. Prova questo nella parte superiore del file grouped.phtml (dopo aver definito $ _product)

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

Dovresti vedere un output simile al seguente.

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
...     

Quindi, puoi prendere una serie di proprietà ed estrarre semplicemente la chiave. È inoltre possibile utilizzare i metodi convenienza / magia getX e setX di Magento. Su tutti i modelli Magento, puoi accedere a qualsiasi proprietà dell'array di dati chiamando un metodo basato sulla versione del nome del caso cammello,

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

Quindi, qualunque sia il tuo nome di attributo personalizzato, dovresti essere in grado di ottenerlo usando quanto sopra, e se non sei sicuro semplicemente print_r o var_dump il contenuto dell'array restituito da getData ().

Infine, se l'attributo personalizzato si trova su uno dei prodotti correlati prodotto semplice, vorrai qualcosa di più simile a

$_associatedProducts[0]->getCreatedAt();

Altri suggerimenti

Ho avuto lo stesso problema.

  1. È necessario individuare grouped.phtml app/design/frontend/base/default/template/catalog/product/view/type/grouped.phtml

  2. Ottieni l'elemento, ad esempio $_item[units]

  3. Aggiungi una cella nella tabella e incolla l'eco $_item['units'];

  4. Questo è tutto :)

Dalla ver. 1.3. e anche in 1.4 devi usare $ _item non $ _prodotto , anche per me funziona bene anche in una tabella raggruppabile.

Esempio:

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

Esistono plugin che possono risolvere la tua soluzione molto facilmente. Qui puoi trovare il plug-in che accetta le opzioni del prodotto e le visualizza in una griglia: http: // www.magemechanics.com/product-grid-options.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top