Como posso adicionar uma nova coluna à sales_flat_order_grid
tabela e garantir que os valores sejam inseridos corretamente?
A "fonte" da nova coluna é uma coluna personalizada à qual adicionamos sales_flat_order
, vamos chamá-lo foo
. AFAICT, existem três maneiras foo
de aparecer na grade principal de pedidos:
JOIN
asales_flat_order_grid
coleção parasales_flat_order
.- Problema: Os filtros não funcionam mais devido a colunas ambíguas (uma vez que ambas as tabelas têm nomes de colunas semelhantes)
- Faça com que a grade use
sales_flat_order
dados em vez desales_flat_order_grid
.- Problema: as colunas não são indexadas, portanto, a filtragem é terrivelmente lenta. Parece bobagem adicionar ao índice os mesmos dados indexados na
sales_flat_order_grid
tabela não utilizada .
- Problema: as colunas não são indexadas, portanto, a filtragem é terrivelmente lenta. Parece bobagem adicionar ao índice os mesmos dados indexados na
- Adicione uma nova coluna
sales_flat_order_grid
e garanta que o valor seja atualizado lá
Não consigo descobrir como sales_flat_order_grid
está sendo atualizado; portanto, não sei como adicionar esta nova coluna. Alguma ideia?
fonte
Eu fiz a mesma coisa. Adicionado o campo 'order_type' em ordem e exibido na grade. Está funcionando perfeitamente no Magento ver 1.7.0.2
Como adicionar o campo Tipo de pedido na grade de pedidos de vendas no admin?
1) Temos que criar um arquivo sql de instalação com o código abaixo.
2) Substitua o arquivo Mage_Adminhtml_Block_Sales_Order_Grid e inclua o código abaixo nele.
3) Crie um evento observador para adicionar / atualizar o valor do campo do tipo de pedido
Abra seu módulo / etc / config.xml
4) Crie um arquivo observador da classe Mycompany_Mymodule_Model_Adminhtml_Observer
fonte
Eu usei o seguinte código semelhante. Está funcionando bem.
fonte