รับข้อยกเว้น "โปรดระบุวิธีการจัดส่ง" ในระหว่างการชำระเงิน
ฉันได้รับบันทึกข้อยกเว้นสำหรับข้อผิดพลาดนี้ในการผลิต แต่ฉันไม่สามารถทำซ้ำปัญหาในสภาพแวดล้อมท้องถิ่นหรือการแสดงละครของฉันได้ดังนั้นมันค่อนข้างยากที่จะแก้ไขปัญหา ข้อผิดพลาดเกิดขึ้นMage_Sales_Model_Service_Quote::_validate()เนื่องจากการ$rateส่งคืนโดย$rate = $address->getShippingRateByCode($method)ว่างเปล่า ฉันได้เพิ่มในการบันทึกเพื่อลองและรับแนวคิดที่ดีขึ้นว่าเกิดอะไรขึ้นและฉันเห็นว่า$methodมีวิธีการจัดส่งที่ถูกต้อง การคาดเดาที่ดีที่สุดของฉันคือในบางช่วงของกระบวนการอัตราการจัดส่งจะถูกลบก่อนเวลาที่ควรจะเป็น ฉันสังเกตเห็นว่าทุกครั้งที่มีข้อยกเว้นเกิดขึ้นมันจะเกิดขึ้นทันทีหลังจากข้อยกเว้นที่ถูกกฎหมายเช่นบัตรเครดิตไม่ถูกต้อง ฉันพยายามทำซ้ำปัญหาโดยใช้บัตรเครดิตที่ไม่ถูกต้องจากนั้นเป็นบัตรที่ถูกต้อง แต่ไม่ได้ทำซ้ำสำหรับฉัน - ในการแสดงละครการผลิตหรือในท้องถิ่น ลางสังหรณ์เริ่มต้นของฉันคือว่าบางทีวิธีการจัดส่งอาจหายไปที่ไหนสักแห่งหลังจากข้อยกเว้นแรกที่ถูกต้อง แต่นั่นไม่ใช่กรณีเพราะฉันเห็นว่า$methodมีค่าที่ถูกต้องในเวลาที่โยนข้อยกเว้นนี้ โมดูลเช็คเอาต์ที่ฉันใช้คือ AwesomeCheckout - ความรู้ของฉันไม่ได้มีตรรกะที่กำหนดเองเมื่อสร้างคำสั่งซื้อที่ควรทำให้เกิดปัญหาที่นี่ แต่อาจเกี่ยวข้องกัน อัปเดต: ฉันได้เพิ่มในรหัสบางส่วนเพื่อพยายามจำอัตราหากพวกเขาหายไป protected function _validate() { if (!$this->getQuote()->isVirtual()) { $address = $this->getQuote()->getShippingAddress(); $addressValidation = $address->validate(); if ($addressValidation !== true) { Mage::throwException( Mage::helper('sales')->__('Please check shipping address information. %s', implode(' ', $addressValidation)) ); …