Domanda

Stiamo creando prodotti raggruppati in base alle immagini del motore e dei programmi di parziali.Tali schemi hanno indicatori numerici per ogni specifico pezzo di schematico e siamo in grado di abbinare la posizione del prodotto associato al segnalino del numero nello schematico.

Il nostro problema è che alcuni schemi hanno la stessa parte in più posizioni.Un esempio, la stessa rondella può presentarsi in posizione 1, 15 e 40. La griglia del prodotto associata ci consente solo di indicare una posizione per quella rondella.

Qualsiasi idea su come potremmo configurare un prodotto raggruppato per consentire più posizioni di un prodotto associato?Ho scavato per diverse ore ora cercando di trovare un modo per aggiungere un attributo aggiuntivo a un prodotto associato ma non sto trovando alcuna possibilità lì.

È stato utile?

Soluzione

Dopo maggiori ore alla ricerca online sono stato in grado di elaborare una soluzione basata su un post in Un altro forum magento . Ho intenzione di riscriverlo qui nella speranza che aiuta qualcun altro a inciampa.

Per questo approccio ho deciso di aggiungere una colonna personalizzata nella griglia del prodotto associata per il mio prodotto raggruppato. Per aggiungere la nuova colonna Ho copiato il file in: app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Super/Group.php nel mio codice locale a: app/code/localMage/Adminhtml/Block/Catalog/Product/Edit/Tab/Super/Group.php

in funzione _preparacolumns () `Ho aggiunto questo:

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

Più in basso in quel file dobbiamo modificare il getSelectedGroupedProducts() alla linea 214 in modo che i nostri aggiornamenti nell'amministratore vengano salvati correttamente. Ecco come dovrebbe guardare ora:

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

Quindi dobbiamo aggiornare la tabella del database per catalog_product_link_attribute. Ho aggiunto i seguenti valori come una nuova riga alla tabella. Potrebbe essere necessario regolare il primo valore a seconda dell'incremento corrente nella tabella:

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

Successivamente dobbiamo cambiare app/design/adminhtml/default/default/layout/catalog.xml in modo che il serializzatore riprenda il nostro nuovo campo. Dobbiamo modificare il layout sotto il nodo <adminhtml_catalog_product_supergroup> aggiungendo una nuova riga in addColumnInputName in modo che sia simile a:

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

Sono ora in grado di aggiungere un elenco di numeri interi separati da virgola in quel campo di input. Con personalizzazione moderata ai modelli di prodotti raggruppati che posso ora visualizzare lo stesso SKU del prodotto associato in più posizioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top