Pregunta

Necesito encontrar una manera de mostrar el valor de un atributo personalizado en lugar de " Nombre del producto " se muestra en la imagen a continuación.

 Tabla de productos agrupados
(fuente: magentocommerce.com )

Estoy trabajando con /app/design/frontend/default/defaultx/template/catalog/product/view/type/grouped.php

El siguiente código no funciona (el atributo personalizado es yearmade):

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

Cualquier ayuda sería apreciada.

EDITAR: Entonces la respuesta resultó ser bastante simple. Verán que lo que no mencioné anteriormente fue que hubo de hecho salida ... pero que era solo un número (por ejemplo: 52). Resulta que este era el ID para ese valor de atributo personalizado (era un tipo desplegable de atributo personalizado).

Entonces, en resumen
Esto funciona para atributos personalizados de texto de tipo:

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

Pero para todos los demás tipos de atributos personalizados (creo), se debe usar lo siguiente:

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

No habría descubierto esto sin la respuesta más excelente proporcionada por Alan Storm, a continuación. Gracias señor.

¿Fue útil?

Solución

Todos los modelos Magento tienen un " getData " método disponible, que devolverá una matriz php de pares clave / valor. Pruebe esto en la parte superior de su archivo grouped.phtml (después de definir $ _product)

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

Debería ver una salida similar a la siguiente.

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

Por lo tanto, puede tomar una serie de propiedades y simplemente extraer la clave. También puede utilizar los métodos de conveniencia / magia getX y setX de Magento. En todos los modelos de Magento, puede acceder a cualquier propiedad en la matriz de datos llamando a un método basado en la versión en camello del nombre,

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

Entonces, cualquiera que sea su nombre de atributo personalizado, debería poder obtenerlo usando lo anterior, y si no está seguro, simplemente print_r o var_dump los contenidos de la matriz devueltos por getData ().

Finalmente, si el atributo personalizado está en uno de los productos simples relacionados con el producto, querrás algo más como

$_associatedProducts[0]->getCreatedAt();

Otros consejos

Tuve el mismo problema.

  1. Debe ubicar grouped.phtml app/design/frontend/base/default/template/catalog/product/view/type/grouped.phtml

  2. Obtenga el artículo, ejemplo $_item[units]

  3. Agregue una celda a la tabla y pegue echo $_item['units'];

  4. Eso es todo :)

Del ver. 1.3. y en 1.4 también debe usar $ _item no $ _product , para mí esto también funciona bien en la tabla agrupable.

Ejemplo:

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

Hay complementos que pueden resolver su solución con mucha facilidad. Puede encontrar el complemento aquí que toma opciones de productos y las muestra en una cuadrícula: http: // www.magemechanics.com/product-grid-options.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top