Pergunta

Estamos criando produtos agrupados com base em imagens de esquemas de motores e peças.Esses esquemas possuem marcadores numéricos para cada peça específica do esquema e podemos combinar a posição do produto associado com o marcador numérico no esquema.

Nosso problema é que alguns esquemas possuem a mesma peça em múltiplas posições.Por exemplo, a mesma arruela pode aparecer nas posições 1, 15 e 40.A grelha de produtos associada apenas nos permite indicar uma posição para aquela anilha.

Alguma ideia de como poderíamos configurar um produto agrupado para permitir múltiplas posições de um produto associado?Estou pesquisando há várias horas tentando encontrar uma maneira de adicionar um atributo adicional a um produto associado, mas não estou encontrando nenhuma possibilidade nisso.

Foi útil?

Solução

Depois de mais horas pesquisando on-line, consegui encontrar uma solução com base em uma postagem em outro fórum magento.Vou reescrevê-lo aqui na esperança de que ajude alguém que tropece.

Para esta abordagem, decidi adicionar uma coluna personalizada na grade de produtos associada ao meu produto agrupado.Para adicionar a nova coluna copiei o arquivo em:app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Super/Group.php no meu código local em: app/code/localMage/Adminhtml/Block/Catalog/Product/Edit/Tab/Super/Group.php

Na função _prepareColumns()` adicionei isto:

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

Mais abaixo nesse arquivo, precisamos alterar o getSelectedGroupedProducts() na linha 214 para que nossas atualizações no admin sejam salvas corretamente.Veja como isso deve ficar agora:

    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;
    }

Então precisamos atualizar a tabela do banco de dados para catalog_product_link_attribute.Adicionei os seguintes valores como uma nova linha à tabela.Pode ser necessário ajustar o primeiro valor dependendo do incremento atual na sua tabela:

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

Em seguida, precisamos mudar app/design/adminhtml/default/default/layout/catalog.xml para que o serializador atenda ao nosso novo campo.Precisamos modificar o layout sob o nó <adminhtml_catalog_product_supergroup> adicionando uma nova linha abaixo addColumnInputName para que pareça:

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

Agora posso adicionar uma lista de números inteiros separados por vírgula nesse campo de entrada.Com personalização moderada nos modelos de produtos agrupados, agora posso exibir o mesmo SKU de produto associado em várias posições.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top