Я помогаю продавцу отследить причину некоторых неудачных платежных транзакций (в течение тяжелого дня заказа), которые завершились следующей ошибкой
SQLSTATE [23000]: нарушение ограничения целостности: 1062 Повторяющаяся запись '51986' для ключа 'UNQ_SALES_FLAT_INVOICE_INCREMENT_ID'
UNQ_SALES_FLAT_INVOICE_INCREMENT_ID
Индекс представляет собой уникальный ключ на increment_id
колонке в sales_flat_invoice
таблице. Когда я смотрю в этой таблице increment_id
упомянутое в error ( 51986
), я обнаруживаю, что там уже есть счет с этим increment_id
, и он относится к заказу, сделанному другим клиентом.
Мои 2 вопроса, связанные с этим
Где в Magento CE 1.9.0.1 обычно создается идентификатор счета?
Существуют ли известные проблемы в стандартной версии Magento CE 1.9.0.1 со встречными идентификаторами счетов для почти одновременных заказов?
Я понимаю, что инкрементный идентификатор 51986
означает, что в магазине есть какое-то расширение для изменения установленных инкрементных идентификаторов, но я хочу удостовериться, что нет научных знаний об этом, прежде чем идти слишком далеко по этому пути.
save()
вызов метода в определенном событии наблюдателя, которое иногда вызывало бы эту проблему - за несколько дней до проверки кода;)