Modifiez 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’ID 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 particulier à l’aide de l’instruction SQL ALTER TABLE
.
Versions affectées
- Adobe Commerce sur site : 2.x.x
- Adobe Commerce sur l’infrastructure cloud : 2.x.x
- MySQL : toute 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".
Étapes préalables
- Recherchez les magasins et les entités pour lesquels le nouvel ID d’incrément doit être modifié.
- Connectez-vous à votre base de données MySQL. Pour Adobe Commerce sur l’infrastructure cloud, vous devez d’abord SSH dans votre environnement.
- 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 sera :
'sequence_order_1'
Si la valeur de la colonne auto_increment
est 1234, l’ordre suivant placé dans le magasin avec ID=1 aura le ID #100001234.
Documentation connexe
- Configurez une connexion à base de données MySQL distante dans notre documentation destinée aux développeurs.
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};
Exemple
Après avoir exécuté la requête suivante :
ALTER TABLE sequence_order_1 AUTO_INCREMENT = 2000;
la commande suivante placée dans le magasin avec ID=1 aura le ID #100002000.
Autres étapes recommandées dans l’environnement de production (Cloud)
Avant d’exécuter la requête ALTER TABLE
sur l’environnement de production d’Adobe Commerce sur l’infrastructure cloud, nous vous recommandons vivement 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éez une sauvegarde de base de données pour restaurer la base de données de production en cas d’échec
Documentation connexe
- Créer un vidage de base de données sur Cloud dans notre base de connaissances de support
- SSH à votre environnement dans notre documentation destinée aux développeurs
- Bonnes pratiques pour la modification des tables de base de données dans le manuel de mise en oeuvre de Commerce