Magento:订购后无法将产品添加到购物车

时间:2011-12-02 22:53:22

标签: magento session cart

下订单后,无法将产品添加到购物车。 Magento一直告诉我:无法将商品添加到购物车。

另外,如果我尝试重新排序,我收到了一个错误:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1";i:1;s:2954:"#0 C:\wamp\www\ronamagento\trunk\lib\Zend\Db\Statement.php(300): Zend_Db_Statement_Pdo->_execute(Array)

如果我退出然后重新登录,一切正常,直到我再下订单。

有什么想法吗?

----------------------编辑------------------------ -

错误似乎来自sales / orders / controllers / OrderController.php,在$ cart-> save()的重新排序功能中;
和添加功能中的Checkout / controllers / CartController.php中的相同代码
看起来像我的购物车对象坏了什么的。

----------------------编辑------------------- -------

----------------------编辑#2 ---------------------- ----

好吧,如果我评论行$ this-> getQuote() - > collectTotals();在Checkout / model / cart.php的保存功能中它似乎工作但没有显示该项目已添加到我的购物车。然后我放回代码行,一切正常。看起来像collectTotals()中出了问题......

----------------------编辑#2 ----------------- ---------

谢谢!

1 个答案:

答案 0 :(得分:0)

这很可能是由第三方模块引起的问题,可能是重写Magento模型或提供事件监听器(我的首选猜测),其中包含一些未转义(可能是直接的,不使用Magento ORM基础架构)的SQL查询。 / p>

作为一个快速调试,我建议您尝试禁用(不通过Admin,这不会起作用,因为它只是脱离渲染,不是重写或事件监听器,而是通过重命名第三方模块的“app / etc / modules /[Module_Name].xml“文件类似于”app / etc / modules / [Module_Name] .xml.disabled“所以Magento忽略了它)你拥有的每个第三方模块 - 一个接一个 - 直到你可以下订单。

一旦确定了负责模块,就可以通过在SQL查询中正确转义字符串来找到修复程序,或者回到模块的制造商,要求为您提供修复程序。

你也可以尝试使用xdebug进行适当的调试,我强烈反对在生产环境中做任何这些调试,因为你可能会导致中断。

请注意,使用具有未转义值的原始SQL查询是一种安全威胁,因为它可能会导致SQL注入攻击。您可以轻松地将您的客户数据窃取,或者您的数据库被黑客入侵,只有那些人在您的网站上使用正确制作的网址。