2010-04-30 19 views
7

Tengo un problema con la visualización de atributos personalizados del producto. He leído todos los recursos a través de google pero aún no he tenido éxito. El problema es que tengo que mostrar el atributo de tamaño del producto configurable en la cuadrícula de categoría y la vista de lista. Cada solución en Google sugirió algo así comoMagento y atributos configurables del producto

$_product->getAttributeText('size') 

pero terminamos en una sola cadena - "S" o "M" en lugar de una matriz. ¿Cómo puedo obtener todos los tamaños posibles de todos los productos simples que pertenecen a un producto configurable particular sin mucha molestia?

ACTUALIZACIÓN

Después de usar solución propuesta por Joseph Mastey me encontré con otro problema. Logré mostrar todas las opciones posibles para el atributo dado, pero ahora necesito mostrar solo estas opciones que están disponibles para comprar. Por ejemplo, si el tamaño de la camiseta L no está en stock o está desactivado, la opción L no se debe mostrar. ¿Cómo puedo resolver este problema?

+0

¿Alguna vez has podido encontrar una solución para esto? Estoy enfrentando el mismo problema. – Luke

Respuesta

18

Cuando se trata de productos configurables (o cuando se trata de un concepto para un solo tipo de producto, como atributos configurables), probablemente trabaje con getTypeInstance. Vea a continuación, tomo los atributos configurables para el producto, luego encuentro el de tamaño. También podría ejecutar todos los atributos configurables si quisiera. O si el tamaño es el único atributo configurable, omita ese if().

$attrs = $_product->getTypeInstance(true)->getConfigurableAttributesAsArray($_product); 
foreach($attrs as $attr) { 
    if(0 == strcmp("size", $attr['attribute_code'])) { 
     $options = $attr['values']; 
     foreach($options as $option) { 
      print "{$option['store_label']}<br />"; 
     } 
    } 
} 

Espero que ayude! Gracias,

Joe

+0

Muchas gracias por su ayuda. Solo había un problema simple: getConfigurableAttributesAsArray tenía que invocarse con el parámetro $ _product. – artega

Cuestiones relacionadas