Pergunta

Passos para reproduzir:

  1. Clique Editar em primeiro lugar, eu.e 000000001
  2. Clique Editar na segunda ordem, eu.e 000000002
  3. Clique Adicione Produtos no primeiro fim de tela de edição
  4. Selecione qualquer produto e clique em Adicionar Produto Selecionado(s) para a Ordem

Agora, você verá que o conteúdo de 000000001 são todos os produtos(s) do 000000002 - bem como o produto que você selecionou.

Eu também notei um comportamento estranho quando se trata da colocação de pedidos depois de editá-los através do qual, por exemplo, a edição de 000000002 vai resultar em uma nova incremento de id de 000000001-1.

Eu acho que esse bug pode vir do adminhtml/session_quote objeto (app/code/core/Mage/Adminhtml/Model/Session/Quote.php).Isso significa que o Magento só pode lidar com a edição de um único pedido por sessão?Seria certamente distinguir entre os objetos de sessão utilizando o pai id de entidade ou algo ao longo dessas linhas?

Editar: O mesmo comportamento é experiente quando a colocação de duas ordens simultaneamente, o que me leva a crer definitivamente relacionados à incapacidade de dividir o adminhtml/session_quote objetos um a um, por ordem pai id da entidade base.

Foi útil?

Solução

Eu não acho que isso é um erro.É sim uma limitação sobre como o administrador editar ordem é implementado.
Quando você acertar Editar na ordem (e quando você criar e encomendar a partir do zero) a infra-estrutura a sessão está envolvido.Veja como o Mage_Adminhtml_Sales_Order_EditController e Mage_Adminhtml_Sales_Order_CreateController classes de olhar como e o que eles fazem.

Então, quando você bater edição de segunda ordem, a sessão está desmarcada (ver Mage_Adminhtml_Sales_Order_EditController::startAction e não de edição de primeira ordem mais.

Mas a forma do primeiro editado ordem é preenchida com dados de primeira ordem.só as chamadas ajax que você faça a partir deste ponto na ordem editar a tela irá retornar o valor de segunda ordem que você editar.
É por isso que você obter resultados mistos de primeira e de segunda ordem.

Ao preencher e enviar o formulário de primeira ordem, você está enviando dados como a identificação do cliente ou moeda de primeira ordem, mas você tem os itens da segunda ordem.

A lição aqui é nunca edit 2 ordens dentro de uma mesma sessão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top