Question

Étapes à reproduire :

  1. Cliquez sur Modifier à la première commande, soit 000000001
  2. Cliquez sur Modifier au deuxième ordre, soit 000000002
  3. Cliquez sur Ajouter des produits sur l'écran d'édition du premier ordre
  4. Sélectionnez n'importe quel produit et cliquez Ajouter le(s) produit(s) sélectionné(s) à la commande

Vous verrez maintenant que le contenu de 000000001 contient tous les produits de 000000002 - ainsi que le produit que vous avez sélectionné.

J'ai également remarqué un comportement étrange lorsqu'il s'agit de passer les commandes après les avoir modifiées, par exemple la modification de 000000002 entraînera que son nouvel identifiant d'incrément soit 000000001-1.

Je pense que ce bug peut provenir du adminhtml/session_quote objet (app/code/core/Mage/Adminhtml/Model/Session/Quote.php).Cela signifie-t-il que Magento ne peut gérer que l’édition d’une seule commande par session ?Cela ferait sûrement la différence entre les objets de session en utilisant l'identifiant de l'entité parent ou quelque chose du genre ?

Modifier: Le même comportement est observé lors de la passation de deux commandes simultanément, ce qui me porte à croire que c'est définitivement lié à l'impossibilité de diviser le adminhtml/session_quote objets sur la base d'un identifiant d'entité de commande parent.

Était-ce utile?

La solution

Je ne pense pas que ce soit un bug.Il s'agit plutôt d'une limitation sur la façon dont l'ordre de modification de l'administrateur est mis en œuvre.
Quand tu frappes Modifier et commandez (et lorsque vous créez et commandez à partir de zéro) dans le backend, la session est impliquée.Voyez comment le Mage_Adminhtml_Sales_Order_EditController et Mage_Adminhtml_Sales_Order_CreateController à quoi ressemblent les cours et ce qu'ils font.

Ainsi, lorsque vous cliquez sur Modifier au deuxième ordre, la session est effacée (voir Mage_Adminhtml_Sales_Order_EditController::startAction) et vous ne modifiez plus la première commande.

Mais le formulaire de la première commande éditée est rempli avec les données de la première commande.seuls les appels ajax que vous effectuez à partir de ce moment dans l'écran de modification de la commande renverront les valeurs de la deuxième commande que vous modifiez.
C'est pourquoi vous obtenez des résultats mitigés au premier et au deuxième ordre.

Lorsque vous soumettez le formulaire de la première commande, vous soumettez des données telles que l'identifiant client ou la devise de la première commande, mais vous avez reçu les articles de la deuxième commande.

La leçon ici est de ne jamais modifier 2 commandes au cours de la même session.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top