Frage

Wir erstellen gruppierte Produkte basierend auf Bildern von Motor- und Teileschaltplänen.Diese Schaltpläne verfügen über Nummernmarkierungen für jedes einzelne Teil des Schaltplans und wir sind in der Lage, die Position des zugehörigen Produkts der Nummernmarkierung im Schaltplan zuzuordnen.

Unser Problem besteht darin, dass einige Schaltpläne das gleiche Teil an mehreren Positionen enthalten.Beispielsweise kann dieselbe Unterlegscheibe an den Positionen 1, 15 und 40 angezeigt werden.Das zugehörige Produktraster erlaubt uns nur die Angabe einer Position für diese Unterlegscheibe.

Irgendwelche Ideen, wie wir ein gruppiertes Produkt so konfigurieren könnten, dass mehrere Positionen eines zugehörigen Produkts möglich sind?Ich habe mehrere Stunden lang nach einer Möglichkeit gesucht, einem verknüpften Produkt ein zusätzliches Attribut hinzuzufügen, finde aber keine Möglichkeit.

War es hilfreich?

Lösung

Nach mehrstündiger Suche im Internet konnte ich anhand eines Beitrags in eine Lösung finden ein weiteres Magento-Forum.Ich werde es hier umschreiben, in der Hoffnung, dass es jemand anderem hilft, der da reinstolpert.

Für diesen Ansatz habe ich beschlossen, eine benutzerdefinierte Spalte im zugehörigen Produktraster für mein gruppiertes Produkt hinzuzufügen.Um die neue Spalte hinzuzufügen, habe ich die Datei kopiert in:app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Super/Group.php in meinen lokalen Code unter: app/code/localMage/Adminhtml/Block/Catalog/Product/Edit/Tab/Super/Group.php

In der Funktion _prepareColumns()` habe ich Folgendes hinzugefügt:

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

Weiter unten in dieser Datei müssen wir das ändern getSelectedGroupedProducts() in Zeile 214, damit unsere Updates im Admin korrekt gespeichert werden.So sollte das jetzt aussehen:

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

Dann müssen wir die Datenbanktabelle aktualisieren catalog_product_link_attribute.Ich habe die folgenden Werte als neue Zeile zur Tabelle hinzugefügt.Abhängig vom aktuellen Inkrement in Ihrer Tabelle müssen Sie möglicherweise den ersten Wert anpassen:

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

Als nächstes müssen wir uns ändern app/design/adminhtml/default/default/layout/catalog.xml damit der Serializer unser neues Feld aufnimmt.Wir müssen das Layout unter dem Knoten ändern <adminhtml_catalog_product_supergroup> indem Sie unten eine neue Zeile hinzufügen addColumnInputName damit es so aussieht:

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

Ich kann jetzt in diesem Eingabefeld eine durch Kommas getrennte Liste von Ganzzahlen hinzufügen.Durch eine moderate Anpassung der gruppierten Produktvorlagen kann ich jetzt dieselbe zugehörige Produkt-SKU an mehreren Positionen anzeigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top