Magento:SQLSTATE [23000]:完整性约束违规:1062重复条目'100000001'用于密钥'UNQ_SALES_FLAT_ORDER_IN

时间:2014-12-04 20:35:15

标签: mysql magento

我安装了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,但找不到解决方案。 我是初学者,商店明天应该再次工作:-( 我非常感谢你的帮助!

非常感谢您的帮助和帮助最好的问候

5 个答案:

答案 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