Alterar ID de incremento de uma entidade do BD (pedido, fatura, aviso de crédito etc.) em uma loja específica

Este artigo discute como alterar a ID de incremento de uma entidade de banco de dados (BD) do Adobe Commerce (pedido, fatura, aviso de crédito etc.) em um repositório Adobe Commerce específico usando a instrução SQL ALTER TABLE.

Versões afetadas

  • Adobe Commerce no local: 2.x.x
  • Infraestrutura do Adobe Commerce na nuvem: 2.x.x
  • MySQL: qualquer versão com suporte

Quando você precisaria alterar a ID de incremento (ocorrências)

Talvez seja necessário alterar a ID de incremento para novas entidades de BD nestes casos:

  • Após uma restauração de backup rígido em um site ativo
  • Alguns registros de pedidos foram perdidos, mas suas IDs já estão sendo usadas por gateways de pagamento (como PayPal) para sua conta de Comerciante atual. Sendo assim, os gateways de pagamento param de processar novos pedidos que têm as mesmas IDs, retornando o erro "ID de fatura duplicada"
NOTE
Você também pode corrigir o problema do gateway de pagamento para PayPal, permitindo vários pagamentos por ID de fatura nas Preferências de Recebimento de Pagamento do PayPal. Consulte Solicitação rejeitada do gateway do PayPal - problema de fatura duplicado em nossa base de dados de conhecimento de suporte.

Etapas de pré-requisito

  1. Localize lojas e entidades para as quais a nova ID de incremento deve ser alterada.
  2. Conecte ao seu BD MySQL. Para o Adobe Commerce na infraestrutura em nuvem, no início, é necessário SSH para o seu ambiente.
  3. Verifique o valor de auto_increment atual para a tabela de sequência de entidade usando a seguinte query:
SHOW TABLE STATUS FROM `{database_name}` WHERE `name` LIKE 'sequence_{entity_type}_{store_id}';

Exemplo

Se você estiver verificando um incremento automático para um pedido no armazenamento com ID=1, o nome da tabela será:

'sequence_order_1'

Se o valor da coluna auto_increment for 1234, a próxima ordem colocada no armazenamento com ID=1 terá a ID #100001234.

Documentação relacionada

Atualizar entidade para alterar ID de incremento

Atualize a entidade usando a seguinte consulta:

ALTER TABLE sequence_{entity_type}_{store_id} AUTO_INCREMENT = {new_increment_value};
WARNING
Importante: o novo valor de incremento deve ser maior que o atual, não menor!

Exemplo

Após executar a seguinte query:

ALTER TABLE sequence_order_1 AUTO_INCREMENT = 2000;

o próximo pedido feito na loja com ID=1 terá a ID #100002000.

Etapas adicionais recomendadas para o ambiente de produção (Nuvem)

Antes de executar a consulta ALTER TABLE no ambiente de Produção do Adobe Commerce na infraestrutura em nuvem, é altamente recomendável executar estas etapas:

  • Teste todo o procedimento de alteração da ID de incremento no ambiente de preparo
  • Crie um backup de BD para restaurar seu BD de Produção em caso de falha

Documentação relacionada

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