在 Magento 中使用信用卡/借记卡下订单时出现以下错误:
Order saving error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '282-189' for key 2
我无法获得确切的跟踪,因为它只是不想向我展示,但是,我已经将其追溯到app/code/core/Mage/Checkout/controllers/OnepageController.php
在线501
(未经编辑)。确切的行是:
$this->getOnepage()->saveOrder();
现在,逻辑告诉我,这只是两个订单在尝试添加订单时具有相同的键,还是我完全错了?
无论如何,除此之外,解决这个问题的最佳方法是什么?我曾想过导出订单,将它们全部删除,然后重新导入它们,但我觉得它行不通。
我正在使用 Magento 1.6.2.0
编辑:我刚刚意识到,如果我发现哪个表未通过完整性检查,我可能会清空该表(取决于它是哪个表),这会自行修复吗?关于如何找出哪个表搞砸的任何想法?
EDIT2:所以在 Oğuz Çelikdemir 的回答之后,事实证明以下是罪魁祸首:
2012-03-14T13:59:01+00:00 DEBUG (7): SQL: INSERT INTO `sales_order_tax_item` (`tax_id`, `item_id`, `tax_percent`) VALUES (?, ?, ?) (254, 8, 10)
2012-03-14T13:59:01+00:00 DEBUG (7): SQL: INSERT INTO `sales_order_tax_item` (`tax_id`, `item_id`, `tax_percent`) VALUES (?, ?, ?) (254, 8, 10)
显然不能插入两个相同的tax_id。有人知道如何解决吗?