Wie kann ich eine Spalte zum Raster im Abschnitt "Admin" unter "Verkauf> Bestellungen" hinzufügen?
Wie kann ich eine Spalte zum Raster im Abschnitt "Admin" unter "Verkauf> Bestellungen" hinzufügen?
Antworten:
Inchoo hat einen großartigen Artikel über die Erweiterung des Bestellrasters geschrieben . Und im Atwix-Blog gibt es einen Artikel zum Hinzufügen einer Spalte aus einer anderen Tabelle.
Der Inchoo-Blogpost erweitert ihn im Grunde um eine benutzerdefinierte Erweiterung. Für den Fall, dass Sie nicht mit dem Schreiben Ihrer eigenen Erweiterung vertraut sind, empfehle ich Ihnen, das Tutorial von Alan Storms oder das von Magento 4U zu besuchen .
Sie werden die Mage_Adminhtml_Order_Grid
Blockklasse umschreiben , indem Sie der _prepareColumns
Methode eine Spalte hinzufügen und die _prepareCollection
Methode mit Ihrem benutzerdefinierten Feld erweitern
Es ist ein 2-stufiger einfacher Prozess. (zum Beispiel möchte ich E-Mail-Adresse und Bestellort in dieses Bestellraster aufnehmen).
Kopieren Sie diese Kerndatei zuerst in dasselbe Verzeichnis in Ihr lokales Verzeichnis. app / code / core / Mage / Adminhtml / Block / Sales / Order / Grid.php
Schritt 1: Fügen Sie die folgende Codezeile in die Funktion _prepareColumns () ein
$this->addColumn('email', array(
'header' => Mage::helper('catalog')->__('Customer Email'),
'index' => 'email',
'type' => 'text'
));
$this->addColumn('city', array(
'header' => Mage::helper('catalog')->__('Order From City'),
'index' => 'city',
'type' => 'text'
));
Schritt 2: Fügen Sie die folgende Codezeile in die Funktion _prepareCollection () ein
$collection->getSelect()->join('sales_flat_order_address', 'main_table.entity_id = sales_flat_order_address.parent_id' ,array('email'=> 'email', 'city'=> 'city' ));
$collection->addFieldToFilter('sales_flat_order_address.address_type', array('eq' => 'billing'));
Die Gesamtabfrage sieht wie folgt aus:
SELECT main_table
. * sales_flat_order_address
. email
AS customer_email
, sales_flat_order_address
. city
FROM sales_flat_order_grid
AS main_table
INNER JOIN sales_flat_order_address
ON main_table.entity_id = sales_flat_order_address.parent_id WHERE (sales_flat_order_address.address_type = 'billing')
Ändern Sie den Code entsprechend Ihren Anforderungen.
Hoffentlich hilft das.
Sie können meine Antwort aus einem vorherigen Beitrag zu " Spalte zu einem Raster hinzufügen" (Beobachter) verwenden - Spalte "store_id" in where-Klausel ist nicht eindeutig , um dem Kundenauftragsraster durch einen Beobachter zusätzliche Spalten hinzuzufügen.
Rewrites sind so gestern;)
Sie können dies mit Ereignissen tun. Eine frühere Antwort finden Sie hier:
Fügen Sie mit Observer die Spalte Firma zum Kunden-Admin-Grid hinzu
Dazu gehört auch eine Möglichkeit, die Filter anzupassen.
Sie müssen lediglich das Raster anpassen, auf das Sie im ersten Codebit abzielen:
if ($event->getBlock() instanceof
Mage_Adminhtml_Block_Newsletter_Subscriber_Grid
) {