Modifier l’identifiant d’incrément d’une entité DB (commande, facture, note de crédit, etc.) sur un magasin particulier

Cet article explique comment modifier l’identifiant d’incrément d’une entité de base de données Adobe Commerce (DB) (commande, facture, note de crédit, etc.) sur un magasin Adobe Commerce spécifique à l’aide de la variable ALTER TABLE Instruction SQL.

Versions affectées

  • Adobe Commerce sur site : 2.x.x
  • Adobe Commerce sur l’infrastructure cloud : 2.x.x
  • MySQL : any version prise en charge

Quand devez-vous modifier l’ID d’incrément (cas) ?

Vous devrez peut-être modifier l’ID d’incrément pour les nouvelles entités de base de données dans les cas suivants :

  • Après une restauration sur un site Live
  • Certains enregistrements de commande ont été perdus, mais leurs identifiants sont déjà utilisés par les passerelles de paiement (comme PayPal) pour votre compte marchand actuel. Dans ce cas, les passerelles de paiement arrêtent de traiter de nouvelles commandes ayant le même identifiant, renvoyant l’erreur "Dupliquer l’identifiant de facture".
NOTE
Vous pouvez également résoudre le problème de passerelle de paiement pour PayPal en autorisant plusieurs paiements par identifiant de facture dans les préférences de réception des paiements de PayPal. Voir Demande de rejet de la passerelle PayPal - problème de facture en double dans notre base de connaissances de soutien.

Étapes préalables

  1. Recherchez les magasins et les entités pour lesquels le nouvel ID d’incrément doit être modifié.
  2. Connexion à votre base de données MySQL. Pour Adobe Commerce sur l’infrastructure cloud, vous devez d’abord SSH vers votre environnement.
  3. Vérifiez la valeur auto_incrément actuelle de la table de séquence d’entités à l’aide de la requête suivante :
SHOW TABLE STATUS FROM `{database_name}` WHERE `name` LIKE 'sequence_{entity_type}_{store_id}';

Exemple

Si vous cochez une auto-incrémentation pour une commande sur le magasin avec ID=1, le nom de la table serait :

'sequence_order_1'

Si la valeur de la variable auto_increment column is 1234, la commande suivante placée dans le magasin avec ID=1 aura la variable ID #100001234.

Documentation connexe

Mettre à jour l’entité pour modifier l’ID d’incrément

Mettez à jour l’entité à l’aide de la requête suivante :

ALTER TABLE sequence_{entity_type}_{store_id} AUTO_INCREMENT = {new_increment_value};
WARNING
Important : La nouvelle valeur d’incrément doit être supérieure à la valeur actuelle, et non inférieure !

Exemple

Après avoir exécuté la requête suivante :

ALTER TABLE sequence_order_1 AUTO_INCREMENT = 2000;

commande suivante placée dans le magasin avec ID=1 aura la variable ID #100002000.

Autres étapes recommandées dans l’environnement de production (Cloud)

Avant d’exécuter la fonction ALTER TABLE sur l’environnement de production d’Adobe Commerce sur l’infrastructure cloud, il est vivement recommandé d’effectuer les étapes suivantes :

  • Testez l’ensemble de la procédure de modification de l’identifiant d’incrément dans votre environnement d’évaluation.
  • Créer sauvegarde de la base de données pour restaurer la base de données de production en cas d’échec

Documentation connexe

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a