He agregado una nueva columna a la tabla sales_order
llamada export_status
, ahora quiero agregar una nueva columna de cuadrícula de pedido con los datos de la nueva sales_order
columna.
Me las arreglé para agregar columna a la the sales_order_grid
tabla.
$installer->getConnection()->addColumn($installer->getTable("sales_order_grid"), "xml_exported", [
'type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
'comment' => 'XML Exported'
]);
¿Cómo puedo hacer que ahora se muestre en la cuadrícula de pedidos con el valor de la sales_order
export_status
columna?
magento2
magento-2.1
order-grid
André Ferraz
fuente
fuente
Respuestas:
Después de mucho cavar en el código central de magento, encontré una solución para mi pregunta. En lugar de agregar una columna a la cuadrícula a través de la base de datos, creé un componente de interfaz de usuario
sales_order_grid.xml
en[COMPANY]/[MODULE]/view/adminhtml/ui_component/sales_order_grid.xml
Luego creó la clase UI bajo
[COMPANY]/[MODULE]/Ui/Component/Listing/Column/Status.php
fuente
filter_condition_callback
puede agregar su propio filtro personalizado según el campo. Por favor no digas "¿Qué quieres decir?" esta vez;)Mi solución puede ser un poco más eficiente ya que sigue la forma nativa de agregar una columna a la cuadrícula, y no tendrá que cargar cada pedido que se muestra en la página para obtener los datos de la columna (en su lugar, utilice la tabla sales_order_grid ). Sin embargo, lo anterior es un gran ejemplo de cómo crear un renderizador personalizado.
proveedor / [proveedor] / [paquete] /view/adminhtml/ui_component/sales_order_grid.xml
Tenga en cuenta que debe habilitar la columna con el widget desplegable que se encuentra sobre la cuadrícula de pedidos antes de que aparezca.
proveedor / [proveedor] / [paquete] /etc/di.xml
Ejemplo de código de configuración para agregar una columna a la tabla sales_order_grid (use esto en su script de instalación / actualización). Por cierto, el mismo código funciona para la tabla sales_order.
¡Espero eso ayude! :-)
fuente
sales_order_grid.xml
debe cerrar su etiqueta <listing> </listing> o devolverá un error de xmlPara crear una nueva columna en la cuadrícula de pedidos, me he referido a Magento Default Module vendor / magento / module-customer-balance
En mi caso, la columna 'custom_column' ya existe en la tabla sales_order.
Tengo que mostrar la columna 'custom_column' en la cuadrícula de pedidos
Paso 1: agregue una nueva columna en la tabla sales_order_grid
Paso 2: archivo di.xml en la aplicación \ code [Proveedor] [NameSpace] \ etc \ di.xml
Paso 3: Cree el archivo de diseño sales_order_grid.xml en app \ code [Vendor] [NameSpace] \ view \ adminhtml \ ui_component
Nota: Esto ha sido probado en Magento versión 2.2.6
fuente
Luego creó la clase UI para representarla.
No olvides borrar el caché.
fuente
He creado un módulo personalizado que agregará un atributo personalizado en la entidad de Pedido de ventas y luego se mostrará en la cuadrícula de pedidos de ventas del administrador.
archivo module.xml para definir el módulo. app \ code \ COMPANY \ MODULE \ etc \ module.xml
archivo di.xml en app \ code \ COMPANY \ MODULE \ etc \ di.xml
InstallData.php para agregar el atributo personalizado export_status en la tabla de la base de datos
app \ code \ COMPANY \ MODULE \ Setup \ InstallData.php
sales_order_grid.xml para agregar una columna personalizada en la cuadrícula de administración del pedido de ventas.
Puede descargar el módulo completo haciendo clic en el siguiente enlace http://vdcstaging.co.in/download/add-custom-culumn-to-admin-grid.zip
fuente