Estoy trabajando en la construcción de una nueva tienda de Magento (esta es la primera con Magento).
Estoy buscando replicar el aspecto de una tienda existente para mis páginas de productos, al menos en términos de diseño:
http://www.panamericantool.com/cobalt-drills/drill-stops.html
http://www.panamericantool.com/screw-driver-bits/paint-cutters.html
He descubierto que necesito usar productos agrupados, con productos simples para crear el tipo de cosas que busco.
En los ejemplos anteriores, cada producto tiene atributos separados, supongo que estos se realizan a través de diferentes conjuntos de atributos en Magento.
Sin embargo, ¿cómo van a mostrar esos diferentes encabezados / valores de tabla en el tema?
Sé que puedo hacer ->getAttributeName()
o ->getAttribute('attribute_code')
en el grouped.phtml
archivo, pero esto resultaría en una gran cantidad de if (->getAttributeName() != '')...
y necesitaría cambiar la plantilla al agregar más.
Estoy seguro de que hay una forma de obtener todos los atributos y recorrerlos en bucle, pero entonces, ¿cómo diferenciaría entre decir el meta_description
atributo (también devuelto por el $_product->getData()
método) y un atributo que quisiera enumerar en la tabla?
¿Cómo podría lograr algo similar a lo que tienen?
También estoy preocupado por el rendimiento, la tienda tendrá 5k productos en el lanzamiento, creciendo a quizás 25k-30k a medida que agreguemos nuestro stock restante. Muchos de estos necesitarán diferentes atributos, pero supongo que podría compartir atributos entre conjuntos de atributos sin demasiados problemas de rendimiento.
Actualizar:
He seguido jugando con esto, he encontrado que esto obtiene todos los atributos de un producto, sin embargo, todavía no conozco una forma simple de mostrar ciertos valores en una tabla de productos agrupados.
$attributes = Mage::getModel('catalog/product_attribute_api')->items($_product->getAttributeSetId());
foreach($attributes as $_attribute){
print_r($_attribute);
}
Respuestas:
Esto debería ser lo que necesitas:
fuente
¿Por qué no crear un atributo que le diga qué atributos mostrar?
Terminé creando un módulo que carga el valor de dos atributos de texto para productos agrupados que son cadenas de código de atributo. Esencialmente un ayudante que explota esa cadena de lista de atributos y la recorre para cargar los datos de atributos de los productos asociados.
Crea un atributo que llamé mío:
grouped_attr_array
Agregue el atributo al conjunto de atributos de diseño del producto agrupado en el administrador y luego, como un campo separado por punto y coma en los datos del producto
torque_range;torque_increments;torque_accuracy
Saqué este código de mi módulo. Está cargando u ocultando un poco más los atributos predeterminados basados en un valor de atributo y el módulo es un poco más complejo. Pero para obtener los datos que se muestran en la tabla, estas son algunas de las funciones principales. Esperemos que te dé una idea sobre la cual construir. Esto está usando magento 1.9.2
El ayudante del módulo:
Obteniendo datos de helper en groupedproduct.phtml
TH's
TD es la mesa
Me gustaría desarrollar la forma de elegir ese atributo en función de los atributos disponibles de la tienda. Tal vez hay una manera mucho mejor de hacer esto también. Todavía no he llegado a eso.
fuente