Pregunta

Estamos creando productos agrupados basados ​​en imágenes de motores y esquemas de piezas.Esos esquemas tienen marcadores numéricos para cada pieza específica del esquema y podemos hacer coincidir la posición del producto asociado con el marcador numérico en el esquema.

Nuestro problema es que algunos esquemas tienen la misma parte en múltiples posiciones.Por ejemplo, la misma lavadora puede aparecer en las posiciones 1, 15 y 40.La grilla de productos asociada sólo nos permite indicar una posición para esa lavadora.

¿Alguna idea sobre cómo podríamos configurar un producto agrupado para permitir múltiples posiciones de un producto asociado?He estado investigando durante varias horas tratando de encontrar una manera de agregar un atributo adicional a un producto asociado, pero no encuentro ninguna posibilidad allí.

¿Fue útil?

Solución

Después de más horas buscando en línea, pude encontrar una solución basada en una publicación en otro foro de magento.Voy a reescribirlo aquí con la esperanza de que ayude a alguien más que lo encuentre.

Para este enfoque, decidí agregar una columna personalizada en la cuadrícula de productos asociados para mi producto agrupado.Para agregar la nueva columna copié el archivo en:app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Super/Group.php en mi código local en: app/code/localMage/Adminhtml/Block/Catalog/Product/Edit/Tab/Super/Group.php

En la función _prepareColumns()` agregué esto:

    $this->addColumn('diagrampos', array(
      'header'    => Mage::helper('catalog')->__('Other Position'),
      'name'      => 'diagrampos',
      'index'     => 'diagrampos',
      'width'     => '60px',
      'editable'  => true
    ));

Más abajo en ese archivo necesitamos cambiar el getSelectedGroupedProducts() en la línea 214 para que nuestras actualizaciones en el administrador se guarden correctamente.Así es como debería verse ahora:

    public function getSelectedGroupedProducts()
        {
        $associatedProducts = Mage::registry('current_product')->getTypeInstance(true)
                              ->getAssociatedProducts(Mage::registry('current_product'));
        $products = array();
        foreach ($associatedProducts as $product) {
            $products[$product->getId()] = array(
              'qty'       => $product->getQty(),
              'position'  => $product->getPosition(),
              'diagrampos'  => $product->getDiagrampos()
            );
        }
        return $products;
    }

Luego necesitamos actualizar la tabla de la base de datos para catalog_product_link_attribute.Agregué los siguientes valores como una nueva fila a la tabla.Es posible que deba ajustar el primer valor según el incremento actual en su tabla:

product_link_attribute_id   => 6
link_type_id                => 3
product_link_attribute_code => diagrampos
data_type                   => varchar

A continuación tenemos que cambiar app/design/adminhtml/default/default/layout/catalog.xml para que el serializador capte nuestro nuevo campo.Necesitamos modificar el diseño debajo del nodo. <adminhtml_catalog_product_supergroup> agregando una nueva línea debajo addColumnInputName para que quede así:

    <action method="addColumnInputName">
        <input_name>qty</input_name>
        <input_name>position</input_name>
        <input_name>diagrampos</input_name>
    </action>

Ahora puedo agregar una lista de números enteros separados por comas en ese campo de entrada.Con una personalización moderada de las plantillas de productos agrupados, ahora puedo mostrar el mismo SKU de producto asociado en varias posiciones.

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