Adicionei uma nova coluna à tabela sales_order
chamada export_status
, agora quero adicionar uma nova coluna de grade de pedidos com os dados da nova sales_order
coluna.
Eu consegui adicionar coluna à the sales_order_grid
tabela.
$installer->getConnection()->addColumn($installer->getTable("sales_order_grid"), "xml_exported", [
'type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
'comment' => 'XML Exported'
]);
Como agora posso mostrar na grade de pedidos o valor da sales_order
export_status
coluna?
magento2
magento-2.1
order-grid
André Ferraz
fonte
fonte
Respostas:
Depois de muita pesquisa no código principal do magento, encontrei uma solução para minha pergunta. Em vez de adicionar uma coluna à grade por meio do banco de dados, criei um componente de interface do usuário
sales_order_grid.xml
em[COMPANY]/[MODULE]/view/adminhtml/ui_component/sales_order_grid.xml
Em seguida, criou a classe de interface do usuário em
[COMPANY]/[MODULE]/Ui/Component/Listing/Column/Status.php
fonte
filter_condition_callback
você pode adicionar seu próprio filtro personalizado conforme o campo. Por favor, não diga "Como assim?" this time;)Minha solução pode ser um pouco mais eficiente, pois segue a maneira nativa de adicionar uma coluna à grade e você não precisará carregar todos os pedidos exibidos na página para obter os dados da coluna (utilizando a tabela sales_order_grid ). O exemplo acima é um ótimo exemplo de como criar um renderizador personalizado.
fornecedor / [fornecedor] / [pacote] /view/adminhtml/ui_component/sales_order_grid.xml
Observe que você deve ativar a coluna usando o widget suspenso acima da grade do pedido antes que ela apareça.
fornecedor / [fornecedor] / [pacote] /etc/di.xml
Exemplo de código de configuração para adicionar coluna à tabela sales_order_grid (use isso no seu script de instalação / atualização). O mesmo código funciona para a tabela sales_order a propósito.
Espero que ajude! :-)
fonte
sales_order_grid.xml
você deve fechar o <lista> </ listando> tag ou ele retornará um erro de xmlPara criar uma nova coluna na grade de pedidos, consultei o fornecedor do Magento Default Module / magento / module-customer-balance
No meu caso, a coluna 'custom_column' já existe na tabela sales_order.
Eu tenho que mostrar a coluna 'custom_column' na grade de pedidos
Etapa 1: adicionar uma nova coluna na tabela sales_order_grid
Etapa 2: arquivo di.xml no aplicativo \ código [Fornecedor] [Namespace] \ etc \ di.xml
Etapa 3: Crie o arquivo de layout sales_order_grid.xml em app \ code [Vendor] [NameSpace] \ view \ adminhtml \ ui_component
Nota: Isso foi testado no Magento versão 2.2.6
fonte
Em seguida, criou a classe de interface do usuário para renderizá-la.
Não se esqueça de limpar o cache.
fonte
Criei um módulo personalizado que adicionará um atributo personalizado à entidade Pedido de Vendas e será exibido na grade Administrador de Pedidos de Vendas.
arquivo module.xml para definir o módulo. app \ code \ COMPANY \ MODULE \ etc \ module.xml
arquivo di.xml em app \ code \ COMPANY \ MODULE \ etc \ di.xml
InstallData.php para adicionar o atributo custom export_status na tabela do banco de dados
app \ code \ COMPANY \ MODULE \ Setup \ InstallData.php
sales_order_grid.xml para adicionar uma coluna personalizada na grade de administração do pedido de vendas.
Você pode baixar o módulo completo clicando no link abaixo http://vdcstaging.co.in/download/add-custom-culumn-to-admin-grid.zip
fonte