Redirect Magento在OnePage签出上的奇怪重定向行为
我的Magento Verison是-1.4.1.1 我有两个问题: 1) 当我通过Onepage结账的各个步骤(注册、账单、发货和付款选项卡)时,有时在这个过程中,我会被重定向到购物车页面。var/report中没有错误、异常和生成报告。我不知道如何调试它。没有我可以找的日志吗 2) 在单击下订单(最后一步)后的同一个Onepage签出过程中,有时会重定向到购物车页面,发送电子邮件,说明订单失败,并显示以下消息: 在此操作之前,必须收集报价总额 为了解决这个问题,我在文件Redirect Magento在OnePage签出上的奇怪重定向行为,redirect,magento,checkout,magento-1.4,Redirect,Magento,Checkout,Magento 1.4,我的Magento Verison是-1.4.1.1 我有两个问题: 1) 当我通过Onepage结账的各个步骤(注册、账单、发货和付款选项卡)时,有时在这个过程中,我会被重定向到购物车页面。var/report中没有错误、异常和生成报告。我不知道如何调试它。没有我可以找的日志吗 2) 在单击下订单(最后一步)后的同一个Onepage签出过程中,有时会重定向到购物车页面,发送电子邮件,说明订单失败,并显示以下消息: 在此操作之前,必须收集报价总额 为了解决这个问题,我在文件magento/app
magento/app/code/core/Mage/Sales/Model/Quote.php
中的prepareCurringPaymentProfiles
中注释了这一行,解决了这个问题:
throw new Exception("Quote totals must be collected before this operation.");
我不知道这两个问题是否相关。但我现在不是第二个问题,而是经常出现第一个问题。原因可能是什么?如何解决
进一步更新-我检查了firebug跟踪,这是500个内部服务器错误,有时出现在单页签出的任何步骤中。我深入研究了onepagecontroller.php中的savebillingaction、saveshippingaction函数,发现$this->getRequest()->isPost()为空时会出现错误,如果为1,则继续执行,然后转到下一步,否则会重定向到购物车,不,我不知道为什么这不是1,或者是因为ajax无法发送post数据,但我检查了XHR请求,ajax每次都发送post数据(使用firebug扩展检查)。有人能告诉我下一步可以做什么来排除故障吗。在哪里可以找到这些Ajax调用?
Shipping.phtml(any step.phtml)底部有JS,它如何调用OnePagecontroller saveshippingaction函数?首先,注释错误消息几乎不是解决问题的方法,因为您只是在掩盖一些可能对系统造成严重后果的问题 确定这样的错误可能很困难,但有几个地方需要首先查看:
希望有帮助 对于遇到“此操作之前必须收集报价总额”错误的任何其他人,请检查Apache日志以了解500内部服务器错误的原因。如果是这样的话:
mod_fcgid: read data timeout in 40 seconds
Premature end of script headers: index.php
process 26126 graceful kill fail, sending SIGKILL
…PHP的响应时间太长。通常是onepage/checkout保存订单操作,因为它非常繁重,并且经常需要连接到第三方服务(支付网关、通讯服务,如mailchimp等)。这些对第三方服务的调用可能需要一段时间,这取决于网络状态,可能是PHP超时的原因
您可以从增加超时开始,但这不是一个好的永久解决方案,因为您首先想知道为什么会发生这种情况
New Relic是监视这些调用的好工具(也是监视您的Magento存储的好工具)。万一有人收到“此操作之前必须收集报价总额”。错误,并且这些解决方案都无法修复其特定问题,我要提到的是,我的解决方案存在以下问题: skin/frontend/base/default/js/opcheckout.js
var params = Form.serialize(payment.form);
这个网站有一个独特的JS错误,它正在清除支付表单并阻止JS阅读它的内容。您使用的模块或主题将有所不同,但请检查以确保付款表单可以正确序列化。如果不是,那可能是您的问题。因为这是内部服务器错误,请尝试访问服务器的错误日志。我会告诉你哪里出了问题。我在1.7.0中也遇到过同样的问题。在我的例子中,问题出现在
/app/code/core/Mage/Usa/Model/Shipping/Carrier/Fedex.php
我的商店也有同样的问题:
<sales_order_item_save_after>
<observers>
<notifystock>
<class>rss/observer</class>
<method>salesOrderItemSaveAfterNotifyStock</method>
</notifystock>
</observers>
</sales_order_item_save_after>
<sales_order_item_save_after>
<observers>
<ordernew>
<class>rss/observer</class>
<method>salesOrderItemSaveAfterOrderNew</method>
</ordernew>
</observers>
</sales_order_item_save_after>