سؤال

خطوات إعادة الإنتاج:

  1. انقر تحرير على الدرجة الأولى ، أي 000000001
  2. انقر تحرير من الدرجة الثانية ، أي 000000002
  3. انقر إضافة منتجات على شاشة تحرير الطلب الأول
  4. حدد أي منتج وانقر إضافة منتج (منتجات) مختارة للطلب

سترى الآن أن محتويات 000000001 هي جميع المنتجات(المنتجات) من 000000002 - بالإضافة إلى المنتج الذي حددته.

لقد لاحظت أيضا بعض السلوك الغريب عندما يتعلق الأمر بوضع الطلبات بعد تحريرها ، حيث سيؤدي تحرير 000000002 على سبيل المثال إلى أن معرف الزيادة الجديد هو 000000001-1.

أعتقد أن هذا الخطأ قد ينبع من adminhtml/session_quote كائن (app/code/core/Mage/Adminhtml/Model/Session/Quote.php).هل هذا يعني أن الماجنتو يمكن التعامل فقط تحرير أمر واحد في كل دورة?من المؤكد أنه سيفرق بين كائنات الجلسة باستخدام معرف الكيان الأصل أو شيء من هذا القبيل?

تحرير: يتم اختبار نفس السلوك عند تقديم أمرين في وقت واحد، مما يقودني إلى الاعتقاد بأنه مرتبط بالتأكيد بعدم القدرة على تقسيم adminhtml/session_quote الكائنات على أساس معرف كيان الطلب الرئيسي.

هل كانت مفيدة؟

المحلول

لا أعتقد أن هذا خطأ.إنه بالأحرى قيود على كيفية تنفيذ أمر تحرير المسؤول.
عندما تضغط تحرير على والنظام (وعند إنشاء والنظام من الصفر) في الخلفية وتشارك الدورة.انظر كيف Mage_Adminhtml_Sales_Order_EditController و Mage_Adminhtml_Sales_Order_CreateController تبدو الفصول الدراسية وماذا يفعلون.

لذلك عندما تضغط على تحرير في الترتيب الثاني ، يتم مسح الجلسة (انظر Mage_Adminhtml_Sales_Order_EditController::startAction) وأنت لا تقوم بتحرير الطلب الأول بعد الآن.

لكن النموذج من الترتيب المحرر الأول مليء بالبيانات من الترتيب الأول.فقط المكالمات أجاكس التي تقوم بها من هذه النقطة في شاشة تحرير النظام سيعود القيم من النظام الثاني الذي تحرير.
لهذا السبب تحصل على نتائج مختلطة من الدرجة الأولى والثانية.

عند تقديم النموذج من الدرجة الأولى ، فإنك تقدم بيانات مثل معرف العميل أو العملة من الدرجة الأولى ولكنك حصلت على العناصر من الدرجة الثانية.

الدرس هنا هو عدم تحرير أوامر 2 في نفس الجلسة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top