自〜ce 1.1以来,我一直在使用字母数字订单增量ID-它们都在使用Alpha字符的前缀字段中设置 core_entity_store.

当时没有关于设置和多商店设置的真实文档,因此我们采用了所有订单ID的做法,即所有订单ID都带有代表商店的Alpha。订单数字通常看起来像M000000003,PA000000004,等等。

快进5年至EE 1.11,自大约PE/EE 1.10以来,我们注意到订单定期返回a SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'PA00505156' for key 'UNQ_SALES_FLAT_ORDER_INCREMENT_ID' 错误或类似的东西。这很不常见 - 但是我的研究使我了解到,在保留订单ID时,种族条件可能是由于前缀是alpha而不是数字。

我知道阿什利·施罗德(Ashley Schroder)不久前就在研究这件事,他开发了一个专业版,他开发了一个模块 - http://www.aschroder.com/2010/07/asily-set-a-custom-order-number-number-in-magento-with-my-free-free-setstartordordordordordornumber-extension/ - 但是看起来并没有太多的动作,因为Pro版本不在Magento Connect上。

还有其他人使用alpha前缀吗?到目前为止,它对您的表现如何?您看到相同的错误吗?

有帮助吗?

解决方案

是的,我们也有这个问题。

快速修复以下内容:转到 app\code\core\Mage\Sales\Model\Resource\Quote.php, ,在功能中 isOrderIncrementIdUsed 更换行

$bind      = array(':increment_id' => (int)$orderIncrementId); 

$bind      = array(':increment_id' => $orderIncrementId);

一切都应该工作。

这是一个核心文件修复,但是可以用扩展名来覆盖此功能(不幸的是,到目前为止我们还没有时间来执行此功能)。

问候。

许可以下: CC-BY-SA归因
scroll top