문제

재현 단계:

  1. 딸깍 하는 소리 편집하다 첫 번째 주문 시, 즉 000000001
  2. 딸깍 하는 소리 편집하다 두 번째 주문, 즉 000000002
  3. 딸깍 하는 소리 제품 추가 첫 번째 주문 편집 화면에서
  4. 제품을 선택하고 클릭하세요. 주문에 선택한 제품 추가

이제 000000001의 내용이 000000002의 모든 제품과 선택한 제품임을 알 수 있습니다.

또한 주문을 편집한 후 주문할 때 몇 가지 이상한 동작을 발견했습니다. 예를 들어 000000002를 편집하면 새 증분 ID가 000000001-1이 됩니다.

내 생각에 이 버그는 다음에서 비롯된 것 같습니다. adminhtml/session_quote 물체 (app/code/core/Mage/Adminhtml/Model/Session/Quote.php).이는 Magento가 세션당 단일 주문 편집만 처리할 수 있다는 의미인가요?확실히 상위 엔터티 ID 또는 해당 라인을 따르는 항목을 사용하는 세션 개체를 구별할 수 있습니까?

편집하다: 동시에 두 개의 주문을 할 때 동일한 동작이 발생하는데, 이는 분명히 분할할 수 없는 것과 관련이 있다고 믿게 만듭니다. adminhtml/session_quote 상위 주문 엔터티 ID 기준으로 개체.

도움이 되었습니까?

해결책

나는 이것이 버그라고 생각하지 않습니다.오히려 관리자 편집 순서가 구현되는 방식에 대한 제한 사항입니다.
당신이 쳤을 때 편집하다 백엔드에서 on 및 주문(그리고 처음부터 생성하고 주문할 때) 세션이 포함됩니다.방법을 확인하세요. Mage_Adminhtml_Sales_Order_EditController 그리고 Mage_Adminhtml_Sales_Order_CreateController 수업의 모습과 수업 내용을 살펴보세요.

따라서 두 번째 주문에서 편집을 누르면 세션이 지워집니다(참조: Mage_Adminhtml_Sales_Order_EditController::startAction) 더 이상 첫 번째 주문을 편집하지 않습니다.

그러나 처음 편집된 주문의 양식은 첫 번째 주문의 데이터로 채워집니다.편집 순서 화면에서 이 시점부터 수행하는 Ajax 호출만 편집한 두 번째 순서의 값을 반환합니다.
이것이 첫 번째와 두 번째 순서에서 혼합된 결과를 얻는 이유입니다.

첫 번째 주문에서 양식을 제출할 때 첫 번째 주문에서 고객 ID 또는 통화와 같은 데이터를 제출하지만 두 번째 주문에서 항목을 받았습니다.

여기서의 교훈은 동일한 세션 내에서 2개의 주문을 절대 편집하지 않는다는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top