[Solo PaaS]{class="badge informative" title="Applicabile solo ai progetti Adobe Commerce on Cloud (infrastruttura PaaS gestita da Adobe) e ai progetti on-premise."}

Cambia ID incremento

In questo articolo viene illustrato come modificare l'ID incremento per un'entità database (DB) di Commerce (ordine, fattura, nota di accredito e così via) in un particolare archivio Commerce utilizzando l'istruzione SQL ALTER TABLE.

Versioni interessate

Quando modificare l'ID incremento

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 gli stessi ID, restituendo l'errore "ID fattura duplicato"
INFO
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 dal gateway PayPal - problema fattura duplicata nella Knowledge Base.

Passaggi preliminari

  1. Trova archivi ed entità per i quali modificare il nuovo ID incremento.

  2. Connettersi al database MySQL.
    Per l’infrastruttura cloud di Adobe Commerce, all’inizio è necessario connettersi all’ambiente utilizzando SSH.

  3. Controllare il valore auto_increment corrente per la tabella di sequenza delle entità utilizzando la query seguente:

    code language-sql
    SHOW TABLE STATUS FROM `{database_name}` WHERE `name` LIKE 'sequence_{entity_type}_{store_id}';
    

Se si sta controllando un incremento automatico per un ordine nel punto vendita con ID=1, il nome della tabella sarà 'sequence_order_1'.

Se il valore della colonna auto_increment è '1234', l'ordine successivo effettuato presso l'archivio con ID=1 avrà l'ID '#100001234'.

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};
INFO
Importante: il nuovo valore di incremento deve essere maggiore di quello corrente.

Dopo l’esecuzione della seguente query:

ALTER TABLE sequence_order_1 AUTO_INCREMENT = 2000;

L'ordine successivo effettuato con ID=1 avrà l'ID '#100002000'.

Passaggi consigliati aggiuntivi per gli ambienti di produzione cloud

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

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

[qualsiasi versione supportata]

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c