我在prestashop 1.7.5中遇到此错误,当用户付款(使用任何付款方式)时,付款已经完成,但是在订单确认页面中,我有一个500错误,我仅有的信息是日志并显示以下消息:
Frontcontroller :: init-无法加载购物车或已使用此购物车下订单
有人知道如何解决此错误吗?我已经站了几天来启动我的电子商务,
谢谢!
答案 0 :(得分:0)
不是prestashop专家,所以请带一点盐。我认为您可能想使用较旧的购物车参考创建新订单。
如:
订单ID 1尝试使用购物车ID 1参考:成功创建订单
尝试使用购物车ID 1参考创建订单ID 2:失败
这是因为我认为订单必须与唯一的购物车相关联。使用Web服务查看订单架构,您会注意到对购物车的单一引用。
希望这会有所帮助。
答案 1 :(得分:0)
在您的情况下,“ {controller :: init-无法加载购物车或已经使用此购物车下达了订单”,很可能因为the condition in PaymentModule::validateOrder为假而触发了。它也可以在FrontController中发生。
无论如何,它来自Cart::orderExists method。认为购物车存在的原因可能是 ps_cart 和 ps_orders 表的不同步。尝试以下操作:在mysql中运行以下查询:
SELECT id_cart FROM ps_cart ORDER by id_cart DESC LIMIT 1;
SELECT id_cart FROM ps_orders ORDER by id_cart DESC LIMIT 1;
对我来说,第一个是345,第二个是1891,这意味着 ps_cart 的AUTOINCREMENT值设置为小于 ps_orders 中现有的 id_cart 值。是什么让新创建的购物车成为ps_orders中已经存在的候选商品。
所以我只是增加了AUTOINCREMENT的值:
ALTER TABLE ps_cart AUTO_INCREMENT = 2000;
它解决了我的问题。