我安装了Magento 1.9.0.1,我从1个月开始上线。 客户的第一个订单没有问题。 但是,现在应该处理订单时出现以下错误消息“处理您的订单时出错。请联系我们或稍后再试。”
日志文件说: 带有消息'SQLSTATE [23000]的异常'PDOException':完整性约束违规:1062 /home/www/web81/html/lib/Zend/Db/Statement/Pdo.php中的密钥'UNQ_SALES_FLAT_ORDER_INCREMENT_ID'的重复条目'100000001': 228
我已经阅读了很多主题但也使用了Google,但找不到解决方案。 我是初学者,商店明天应该再次工作:-( 我非常感谢你的帮助!
非常感谢您的帮助和帮助最好的问候
答案 0 :(得分:9)
您可以尝试以下。
在app/code/core/Mage/Sales/Model/Resource/Quote.php
搜索isOrderIncrementIdUsed方法
在那种方法中,
替换
$bind = array(':increment_id' => (int)$orderIncrementId);
与
$bind = array(':increment_id' => $orderIncrementId);
----------------------------------------------- - - - - - - - 要么 - - - - - - - - - - - - - - - - - - -------------------------------------------
转到admin-> sales->订购并查找最高订单号(对于每个商店视图!)
然后查看您的数据库。在表eav_entity_type中,您将找到列出的所有实体类型。有意改变的是订单号开始的地方,即。订单销售/订单。记住entity_type_id。
接下来转到表eav_entity_store。查找entity_type_id。现在,您可以将increment_last_id的值更改为上一个实际订单号。 (也就是说,如果您希望将下一个orderId设置为15000,则将increment_last_id设置为14999.)
答案 1 :(得分:3)
试试这个解决方案。这肯定会对你有所帮助。
订单编号 100000001 (即增量ID或 increment_id )已存在于您的订单表 sales_flat_order 中,并且它已经存在
时, increment_ids 必须是唯一的首先,验证您在错误消息中看到的这些订单号确实已存在于 sales_flat_order.increment 列中。然后,您需要修改 eav_entity_store.increment_id 值,以便新的增量ID永远不会与您现有的订单号重叠。
检查 sales_flat_order.increment_id 中的最大值,并使用大于该值的值更新 eav_entity_store.increment_id 。
答案 2 :(得分:0)
我非常喜欢Empiro Technologies给出的答案。我使用该答案作为灵感,但采用了不同的方法:在我的情况下,我已将sales_ *表从新数据库迁移到旧数据库副本。但是我错过了eav_entity_store表。所以我只是更新了一个表中的所有行,从数据库到数据库。在我的情况下这很好。
答案 3 :(得分:0)
我一直花费相当多的时间来尝试诊断我遇到的同样的错误,我无法通过Paypal提交一个商店视图的订单,但我可以用我的其他观点。看完这篇文章后,我意识到我的increment_last_id是罪魁祸首!我最近刚使用cart2cart从oscommerce-> magento导入旧的客户信息/订单,它将我的所有订单放入我的默认商店视图而不更新increment_last_id。将int更新为最后导入的订单号后,我可以再次下订单!
答案 4 :(得分:0)
首先进入最大数量 sales_flat_order 的表 increment_id ,然后通过增加1来进入 eav_entity_store 表 increment_last_id 列您的 sales_flat_order 表的最大 increment_id为100000001 ,并更改 eav_entity_store 表 increment_last_id为100000002