Ich habe der Tabelle mit dem sales_order
Namen eine neue Spalte hinzugefügt . export_status
Jetzt möchte ich eine neue Spalte für das Bestellraster mit den Daten aus der neuen sales_order
Spalte hinzufügen .
Es ist mir gelungen, eine Spalte zur the sales_order_grid
Tabelle hinzuzufügen .
$installer->getConnection()->addColumn($installer->getTable("sales_order_grid"), "xml_exported", [
'type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
'comment' => 'XML Exported'
]);
Wie kann ich jetzt dafür sorgen, dass es im Bestellraster mit dem Wert aus der sales_order
export_status
Spalte angezeigt wird?
magento2
magento-2.1
order-grid
André Ferraz
quelle
quelle
Antworten:
Nachdem ich viel in Magento-Kerncode gebuddelt hatte, fand ich eine Lösung für meine Frage. Anstatt eine Spalte an das Netz über die Datenbank hinzuzufügen, habe ich eine UI - Komponente
sales_order_grid.xml
unter[COMPANY]/[MODULE]/view/adminhtml/ui_component/sales_order_grid.xml
Dann erstellte die UI-Klasse unter
[COMPANY]/[MODULE]/Ui/Component/Listing/Column/Status.php
quelle
filter_condition_callback
wo Sie Ihren eigenen benutzerdefinierten Filter nach Feld hinzufügen können. Bitte sag nicht "Was meinst du?" diesmal;)Meine Lösung ist möglicherweise effizienter, da sie dem systemeigenen Verfahren zum Hinzufügen einer Spalte zum Raster folgt und Sie nicht jede auf der Seite angezeigte Reihenfolge laden müssen, um die Spaltendaten abzurufen ( stattdessen wird die Tabelle sales_order_grid verwendet). Das obige Beispiel zeigt, wie Sie einen benutzerdefinierten Renderer erstellen.
vendor / [vendor] / [package] /view/adminhtml/ui_component/sales_order_grid.xml
Bitte beachten Sie, dass Sie die Spalte mit dem Dropdown-Widget über dem Bestellraster aktivieren müssen, bevor sie angezeigt wird.
Hersteller / [Hersteller] / [Paket] /etc/di.xml
Beispiel-Setup-Code zum Hinzufügen einer Spalte zur Tabelle sales_order_grid (verwenden Sie diesen Code in Ihrem Installations- / Upgrade-Skript). Der gleiche Code funktioniert übrigens auch für die Tabelle sales_order.
Ich hoffe es hilft! :-)
quelle
sales_order_grid.xml
du dein <listing> </ listing> -Tag schließen solltest, sonst wird ein Fehler von xmlUm eine neue Spalte im Bestellraster zu erstellen, habe ich Magento Default Module Hersteller / Magento / Modul-Kunden-Kontostand angegeben
In meinem Fall ist die Spalte 'custom_column' bereits in der Tabelle sales_order vorhanden.
Ich muss die Spalte 'custom_column' im Bestellraster anzeigen
Schritt 1: Fügen Sie eine neue Spalte in die Tabelle sales_order_grid ein
Schritt 2: di.xml-Datei in app \ code [Vendor] [NameSpace] \ etc \ di.xml
Schritt 3: Erstellen Sie die Layoutdatei sales_order_grid.xml unter app \ code [Vendor] [NameSpace] \ view \ adminhtml \ ui_component
Hinweis: Dies wurde in Magento Version 2.2.6 getestet
quelle
Dann Erstellt die UI-Klasse, um es zu rendern.
Vergessen Sie nicht, den Cache zu leeren.
quelle
Ich habe ein benutzerdefiniertes Modul erstellt, das ein benutzerdefiniertes Attribut in der Entität "Kundenauftrag" hinzufügt und dann im Raster "Kundenauftrag" des Administrators anzeigt.
Datei module.xml zum Definieren des Moduls. app \ code \ COMPANY \ MODULE \ etc \ module.xml
di.xml-Datei in app \ code \ COMPANY \ MODULE \ etc \ di.xml
InstallData.php, um der Datenbanktabelle das benutzerdefinierte Attribut export_status hinzuzufügen
app \ code \ COMPANY \ MODULE \ Setup \ InstallData.php
sales_order_grid.xml zum Hinzufügen einer benutzerdefinierten Spalte im Kundenauftrags-Administratorraster.
Sie können das gesamte Modul herunterladen, indem Sie auf den folgenden Link klicken: http://vdcstaging.co.in/download/add-custom-culumn-to-admin-grid.zip
quelle