J'aide un marchand à rechercher la cause première de certaines transactions de paiement qui ont échoué (au cours d'une journée de commande lourde), qui ont échoué avec l'erreur suivante
SQLSTATE [23000]: violation de contrainte d'intégrité: 1062 entrée en double '51986' pour la clé 'UNQ_SALES_FLAT_INVOICE_INCREMENT_ID'
L' UNQ_SALES_FLAT_INVOICE_INCREMENT_ID
index est une clé unique sur la increment_id
colonne du sales_flat_invoice
tableau. Quand je regarde dans ce tableau pour le increment_id
mentionné dans l'erreur ( 51986
), je trouve qu'il y a déjà une facture avec ceincrement_id
, et c'est pour une commande passée par un autre client.
Mes 2 questions liées à cela
Où dans Magento CE 1.9.0.1 un ID de facture est-il normalement créé?
Existe-t-il des problèmes connus dans un stock Magento CE 1.9.0.1 avec des ID de facture en collision pour des commandes quasi simultanées?
Je me rends compte que l'ID d'incrément 51986
signifie que le magasin a une sorte d'extension pour changer les ID d'incrément installés, mais je veux m'assurer qu'il n'y a pas de science connue w / r / t à cela avant d'aller trop loin dans cette voie.
save()
appel de méthode dans un événement d'observateur spécifique qui pouvait parfois provoquer ce problème - dans les jours précédant la révision du code;)