Cambiar el ID de incremento de una entidad de BD (pedido, factura, nota de abono, etc.) en una tienda particular

Este artículo explica cómo cambiar el ID de incremento de una entidad de la base de datos de Adobe Commerce (BD) (pedido, factura, nota de abono, etc.) en un almacén de Adobe Commerce determinado mediante la instrucción SQL ALTER TABLE.

Versiones afectadas

  • Adobe Commerce local: 2.x.x
  • Adobe Commerce en infraestructura en la nube: 2.x.x
  • MySQL: cualquier versión compatible

¿Cuándo tendría que cambiar el ID de incremento (casos)?

Es posible que tenga que cambiar el ID de incremento de las nuevas entidades de base de datos en estos casos:

  • Después de una restauración de copia de seguridad en disco duro en un sitio activo
  • Se han perdido algunos registros de pedidos, pero sus ID ya están siendo utilizados por las puertas de enlace de pago (como PayPal) para su cuenta de comerciante actual. Siendo este el caso, las puertas de enlace de pago dejan de procesar nuevos pedidos que tienen el mismo ID, devolviendo el error "ID de factura duplicado"
NOTE
También puedes solucionar el problema de la pasarela de pago de PayPal permitiendo varios pagos por ID de factura en las Preferencias de recepción de pagos de PayPal. Ver Solicitud rechazada de puerta de enlace de PayPal - problema de factura duplicada en nuestra base de conocimiento de soporte técnico.

Pasos previos necesarios

  1. Busque tiendas y entidades para las que se debe cambiar el nuevo ID de incremento.
  2. Conéctate a tu base de datos MySQL. Para Adobe Commerce en infraestructura en la nube, al principio, debes SSH a tu entorno.
  3. Compruebe el valor actual auto_increment para la tabla de secuencia de entidades mediante la siguiente consulta:
SHOW TABLE STATUS FROM `{database_name}` WHERE `name` LIKE 'sequence_{entity_type}_{store_id}';

Ejemplo

Si está comprobando un incremento automático para un pedido en el almacén con ID=1, el nombre de tabla sería:

'sequence_order_1'

Si el valor de la columna auto_increment es 1234, el siguiente pedido realizado en el almacén con ID=1 tendrá el ID #100001234.

Documentación relacionada

Actualizar entidad para cambiar el ID de incremento

Actualice la entidad con la siguiente consulta:

ALTER TABLE sequence_{entity_type}_{store_id} AUTO_INCREMENT = {new_increment_value};
WARNING
Importante: El nuevo valor de incremento debe ser mayor que el actual, no menor.

Ejemplo

Después de ejecutar la siguiente consulta:

ALTER TABLE sequence_order_1 AUTO_INCREMENT = 2000;

el siguiente pedido hecho en la tienda con ID=1 tendrá el ID #100002000.

Pasos recomendados adicionales en el entorno de producción (nube)

Antes de ejecutar la consulta ALTER TABLE en el entorno de producción de Adobe Commerce en la infraestructura en la nube, se recomienda encarecidamente realizar estos pasos:

  • Pruebe todo el procedimiento para cambiar el ID de incremento en el entorno de ensayo
  • Cree una copia de seguridad de la base de datos para restaurar la base de datos de producción en caso de error

Documentación relacionada

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