Magento - SQLSTATE [23000]:违反完整性约束:1062 重复条目

Magento - SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry

当客户在 Magento 的结帐过程中被重定向到他的后台网站以完成付款时。如果他们取消付款并被重定向回 magento 商店,则无法再下订单,我收到此错误电子邮件:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'MF00000007' for key 'UNQ_SALES_FLAT_ORDER_INCREMENT_ID', query was: INSERT INTO sales_flat_order (coupon_code, protect_code, shipping_description, is_virtual, store_id, customer_id, base_discount_amount, base_grand_total, base_shipping_amount, base_shipping_tax_amount, base_subtotal, base_tax_amount, base_to_global_rate, base_to_order_rate, discount_amount, grand_total, shipping_amount, shipping_tax_amount, store_to_base_rate, store_to_order_rate, subtotal, tax_amount, total_qty_ordered, customer_is_guest, customer_note_notify, customer_group_id, quote_id, base_shipping_discount_amount, base_subtotal_incl_tax, shipping_discount_amount, subtotal_incl_tax, weight, customer_dob, increment_id, applied_rule_ids, base_currency_code, customer_email, customer_firstname, customer_lastname, customer_middlename, customer_prefix, customer_suffix, customer_taxvat, discount_description, global_currency_code, order_currency_code, remote_ip, shipping_method, store_currency_code, store_name, x_forwarded_for, customer_note, created_at, updated_at, total_item_count, customer_gender, hidden_tax_amount, base_hidden_tax_amount, shipping_hidden_tax_amount, base_shipping_hidden_tax_amnt, shipping_incl_tax, base_shipping_incl_tax, gift_message_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, '2016-02-11 15:39:09', '2016-02-11 15:39:09', ?, ?, ?, ?, ?, ?, ?, ?, ?)

谁能帮我解决这个问题,我们的另一位客户也遇到了同样的问题...

此致, 罗伯特

将文件 app/code/core/Mage/Sales/Model/Resource/Quote.php 复制到 app/code/local/Mage/Sales/Model/Resource/Quote.php (或创建一个自定义模块来覆盖此 class)。

查找:

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

并将其替换为:

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