Modifica ID incremento per un'entità DB (ordine, fattura, nota di accredito, ecc.) in un particolare negozio

Questo articolo illustra come modificare l'ID incremento per un'entità database di Adobe Commerce (DB) (ordine, fattura, nota di accredito, ecc.) in un particolare archivio Adobe Commerce utilizzando l'istruzione SQL ALTER TABLE.

Versioni interessate

  • Adobe Commerce on-premise: 2.x.x
  • Adobe Commerce sull’infrastruttura cloud: 2.x.x
  • MySQL: qualsiasi versione supportata

Quando è necessario modificare l’ID incremento (casi)

Potrebbe essere necessario modificare l'ID incremento per le nuove entità DB nei seguenti casi:

  • Dopo il ripristino di un backup rigido su un sito live
  • Alcuni record degli ordini sono stati persi, ma i loro ID sono già utilizzati dai gateway di pagamento (come PayPal) per il tuo account esercente corrente. In questo caso, i gateway di pagamento interrompono l'elaborazione di nuovi ordini con lo stesso ID, restituendo l'errore "ID fattura duplicato"
NOTE
Puoi anche risolvere il problema del gateway di pagamento per PayPal consentendo più pagamenti per ID fattura nelle Preferenze di ricezione pagamento di PayPal. Vedi Richiesta rifiutata gateway PayPal - problema fattura duplicata nella knowledge base del supporto.

Passaggi preliminari

  1. Trova archivi ed entità per i quali modificare il nuovo ID incremento.
  2. Connetti al database MySQL. Per Adobe Commerce su infrastruttura cloud, devi prima SSH nell'ambiente.
  3. Controllare il valore corrente di auto_increment per la tabella di sequenza entità utilizzando la seguente query:
SHOW TABLE STATUS FROM `{database_name}` WHERE `name` LIKE 'sequence_{entity_type}_{store_id}';

Esempio

Se stai controllando un incremento automatico per un ordine nell'archivio con ID=1, il nome della tabella sarà:

'sequence_order_1'

Se il valore della colonna auto_increment è 1234, il ID #100001234 verrà inserito nell'ordine successivo con ID=1.

Documentazione correlata

Aggiorna entità per modificare l'ID incremento

Aggiorna l’entità utilizzando la seguente query:

ALTER TABLE sequence_{entity_type}_{store_id} AUTO_INCREMENT = {new_increment_value};
WARNING
Importante: il nuovo valore di incremento deve essere maggiore di quello corrente, non minore.

Esempio

Dopo l’esecuzione della seguente query:

ALTER TABLE sequence_order_1 AUTO_INCREMENT = 2000;

il ID #100002000 verrà emesso per il prossimo ordine con ID=1.

Passaggi aggiuntivi consigliati per l’ambiente di produzione (Cloud)

Prima di eseguire la query ALTER TABLE nell'ambiente di produzione di Adobe Commerce sull'infrastruttura cloud, si consiglia vivamente di eseguire i passaggi seguenti:

  • Test dell'intera procedura di modifica dell'ID incremento nell'ambiente di staging
  • Crea un backup del database per ripristinare il database di produzione in caso di errore

Documentazione correlata

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