2件の注文を同時に編集するバグ
-
12-12-2019 - |
質問
再現する手順:
- クリック 編集 最初の注文、すなわち000000001
- クリック 編集 二次、すなわち000000002
- クリック 製品を追加する 一次編集画面で
- 任意の製品を選択し、をクリックします 選択した製品を注文に追加する
これで、000000001の内容が、選択した製品と同様に、000000002のすべての製品であることがわかります。
たとえば、000000002を編集すると、新しい増分idが000000001-1になるという、編集後に注文を配置する際の奇妙な動作にも気付きました。
私はこのバグが原因である可能性があると思います adminhtml/session_quote
オブジェクト(app/code/core/Mage/Adminhtml/Model/Session/Quote.php
).これは、Magentoがセッションごとに1つの注文の編集のみを処理できることを意味しますか?確かに、親エンティティidまたはそれらの行に沿った何かを使用してセッションオブジェクトを区別しますか?
編集: 同時に二つの注文をするときに同じ動作が経験され、それは間違いなく分割することができないことに関連していると信じるように私を導きま adminhtml/session_quote
親注文エンティティidごとのオブジェクト。
解決
私はこれがバグだとは思わない。むしろ、管理者の編集順序がどのように実装されているかに関する制限です。
あなたがヒットしたとき 編集 バックエンドでonとorder(そして、最初から作成して注文するとき)、セッションが関与します。どのように参照してください Mage_Adminhtml_Sales_Order_EditController
と Mage_Adminhtml_Sales_Order_CreateController
クラスはどのように見え、彼らが何をしているのか。
したがって、2番目の順序で編集を押すと、セッションはクリアされます(参照 Mage_Adminhtml_Sales_Order_EditController::startAction
)そして、あなたはもう最初の注文を編集していません。
しかし、最初に編集された注文のフォームには、最初の注文のデータが入力されます。注文の編集画面でこの時点から行ったajax呼び出しのみが、編集した2番目の注文から値を返します。
そのため、1番目と2番目の順序から混合結果が得られます。
最初の注文からフォームを送信するとき、最初の注文から顧客idや通貨などのデータを送信していますが、2番目の注文からアイテムを取得しました。
ここでの教訓は、同じセッション内で2つの注文を編集しないことです。