Magento: mostra gli attributi personalizzati nella tabella dei prodotti raggruppati
-
05-07-2019 - |
Domanda
Devo trovare un modo per mostrare il valore di un attributo personalizzato al posto del " Nome prodotto " mostrato nell'immagine qui sotto.
(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.
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.
-
È necessario individuare grouped.phtml
app/design/frontend/base/default/template/catalog/product/view/type/grouped.phtml
-
Ottieni l'elemento, ad esempio
$_item[units]
-
Aggiungi una cella nella tabella e incolla l'eco
$_item['units'];
-
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