结帐时出现“请指定送货方式”异常
我一直在生产中获取此错误的异常日志,但无法在本地或暂存环境中重现该问题,因此很难进行故障排除。 产生此错误的Mage_Sales_Model_Service_Quote::_validate()原因是$rate返回的$rate = $address->getShippingRateByCode($method)为空。 我添加了一些日志记录,以尝试更好地了解正在发生的事情,并且可以看到其中$method包含正确的运输方法。 我最好的猜测是,在此过程中的某个时候,运费应在应有的时候删除。 我注意到,每次发生此异常时,都会在合法异常(例如无效的信用卡)之后立即发生。我试图通过使用无效的信用卡(然后是有效的信用卡)来重现该问题,但是对于我而言,无论是分期,制作还是本地,都无法重现。 我最初的预感是,可能在第一个有效异常之后某处丢失了运输方法,但事实并非如此,因为$method在抛出此异常时,我认为该方法具有正确的值。 我正在使用的checkout模块是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)) ); } $method= $address->getShippingMethod(); $rate = $address->getShippingRateByCode($method); /** * Start Customization */ …