Wie kann ich dem Kundenauftragsraster ordnungsgemäß zusätzliche Spalten hinzufügen?

7

Gibt es eine Möglichkeit (oder mehrere Möglichkeiten), zusätzliche Spalten zum Kundenauftragsraster hinzuzufügen, das im Administrationsbereich angezeigt wird?

Benmarks
quelle
Ich denke, die Frage könnte etwas zu weit gefasst sein, da je nachdem, welche zusätzliche Spalte Sie anzeigen möchten, die Lösung anders aussehen würde, da für eine möglicherweise eine Verknüpfung erforderlich ist und eine andere die Informationen direkt aus der Tabelle sales_order_grid übernehmen kann. Es wäre auch gut, wenn Sie darlegen würden, was für Sie richtig bedeutet. Für mich könnte es alles bedeuten, den Kern nicht zu hacken, nicht neu zu schreiben und die neuen Spalten filterbar zu machen.
Kristof bei Fooman

Antworten:

5

Ich würde es sauber machen.

Ich würde beobachten core_collection_abstract_load_beforeund adminhtml_block_html_beforeEreignisse.

In der ersten würde ich hinzufügen joinAttribute(), joinField()und join()in der Sammlung und in der zweiten würde ich addColumn()zum Block.

Lassen Sie mich wissen, wenn weitere Details erforderlich sind.

user487772
quelle
Sie würden alle Sammlungsladungen verbrauchen? Warum nicht einfach beobachten Mage_Sales_Model_Resource_Order_Grid_Collection?
Benmarks
Entschuldigung, ich denke nur weiter nach. Überlegen Sie sich eine Lösung, um ein Admin-Grid zu ändern.
user487772
1

Wenn Sie ein benutzerdefiniertes Modul haben, das Spalten hinzufügen muss, ist dies wahrscheinlich nicht für Sie, aber zum Hinzufügen der Zahlungsmethode oder etwas zum Raster funktioniert dies einwandfrei: https://github.com/mage-eag/mage-enhanced -admin-Gitter

Paul Hachmang
quelle
1

Sie erweitern möchten Mage_Adminhtml_Block_Sales_Order_Gridin app/code/local/Module/Adminhtml/Block/Sales/Order, außer Kraft setzen , die Funktion _prepareColumns()und Verwendung $this->addColumn. Wenn Sie die Auflistung ändern müssen, um die SQL für die verwendete Auflistung zu ändern, überschreiben Sie sie _prepareCollection()und rufen Sie sie aufMage::getResourceModel($this->_getCollectionClass())->getSelect()->joinLeft(...)

Geben Sie für beide Funktionen das Ergebnis von Mage_Adminhtml_Block_Widget_Grid::_prepareCollection()oder Mage_Adminhtml_Block_Widget_Grid::_prepareColumns()anstelle des übergeordneten Elements zurück, oder Ihre Änderungen werden mit dem ursprünglichen Verhalten von überschrieben Mage_Adminhtml_Block_Sales_Order_Grid.

Ralph Tice
quelle