我正在帮助商家追踪某些付款交易失败(在繁重的订单日期间)的根本原因,该交易失败并出现以下错误
SQLSTATE [23000]:违反完整性约束:1062键“ UNQ_SALES_FLAT_INVOICE_INCREMENT_ID”的条目“ 51986”重复
该UNQ_SALES_FLAT_INVOICE_INCREMENT_ID
指数是在一个独特的密钥increment_id
在列sales_flat_invoice
表。当我在该表中查找increment_id
错误(51986
)中提到的内容时,我发现其中已经有一张发票increment_id
,并且该发票是由另一位客户下的订单。
我与此有关的2个问题
通常在Magento CE 1.9.0.1中的哪个位置创建发票ID?
Magento CE 1.9.0.1库存中是否存在已知问题,且几乎同时发生的订单具有冲突的发票ID?
我认识到51986
手段的增量ID 商店具有某种扩展名,用于更改已安装的增量ID,但是我想确保在沿这条路径走得太远之前没有已知的科学。
1
添加Mage_Eav_Model_Entity_Type :: fetchNewIncrementId()作为调试点。
—
艾伦·斯托姆
我以前见过,但这是由于有人
—
Erfan 2015年
save()
在特定的观察者事件中放置了一个方法调用,有时这会导致此问题-在代码审阅之前;)
@AlanStorm,出于好奇,为什么要进入Eav实体,我认为发票是一个平面模型。
—
Prateek
我相信这也可以用默认的Magento发生stackoverflow.com/questions/25918091/...
—
克里斯托夫在Fooman
我知道这个旧版本,但是由于任何原因复制了eav_entity_store表。这是一个常见错误,其中最后一个订单ID与当前下达的订单不匹配。因此,Magento使用eav_entity_store表确定要在订单表中插入的ID,在这种情况下,该ID已经存在。另外,请注意,这是FooMan订单号扩展名中的一个非常常见的问题,因为它可以绕过此检查并导致此问题突然出现。
—
罗布2015年