Cómo corregir una infracción de restricción única encontrada en Magento 2

Estás leyendo la publicación: Cómo corregir una infracción de restricción única encontrada en Magento 2

Al ser un administrador de la tienda Magento 2, es posible que haya enfrentado un error que indica “Se encontró una violación de restricción única”.

En el backend, se ve algo como lo que se muestra aquí:

Es posible que haya recibido un error de violación de la restricción de integridad al crear un pedido desde el backend en la tienda Magento 2.

Este problema puede ocurrir varias veces, he visto que algunos de los propietarios de tiendas Magento se enfrentan a este tipo de problemas al agregar productos, categorías, elementos de megamenú o crear un nuevo pedido.

Aquí hay una solución para fi panel de administración para dos escenarios principales.

Escenario 1: Solucione la violación de restricción única en Magento 2 (Violación de restricción de integridad)

Se produce un error de violación de la restricción de integridad cuando intenta violar las restricciones definidas en el esquema de la base de datos de Magento. Estas restricciones existen para evitar entradas duplicadas o conflictivas en su base de datos. Si constantemente enfrenta este error, estos son los pasos para superarlo.

Pasos para arreglar la violación de restricción única encontrada en Magento 2

Revisa la tabla”orden_secuencia_1” donde 1 se refiere a la identificación de la tienda.

orden_secuencia_1

En la tabla anterior, la columna de valor_secuencia debe corregir la violación de la restricción de integridad en Magento 2.

Escenario 2: Solucione la violación de restricción única en Magento 2 al agregar cualquier producto, categoría o elemento de Megamenú.

Este problema ocurre cuando inserta datos que violan las restricciones únicas definidas en la base de datos de Magento.

🔥 Recomendado:  17 estrategias para manejar el estrés cuando se está quemando en el trabajo

La solución aquí es eliminar primero las url_rewrites existentes, la función removeMultiple ya existe.

Y luego, sobrescriba Magento\CatalogUrlRewrite\Model\Category\Plugin\Storage y agregue esta línea antes de saveMultiple.

$this->productResource->removeMultiple(array_column($toSave, ‘url_rewrite_id’));

Que luego se verá así:

if (count($toSave) > 0) { $this->productResource->removeMultiple(array_column($toSave, ‘url_rewrite_id’)); $this->productResource->saveMultiple($toSave); }

if (contar ($paraGuardar) > 0) {

$this->productResource->removeMultiple(array_column($toSave, ‘url_rewrite_id’));

$this->productResource->saveMultiple($toSave);

}

& eso es todo. Así es como puede corregir la violación de restricción única en Magento 2 en función de estos dos escenarios. Ambos escenarios se enfocan en evitar registros duplicados o registros similares que puedan causar un problema en su tienda Magento 2.

Si tiene alguna duda sobre el error y su solución, puede mencionarlo en la sección de comentarios a continuación. Estaré encantado de ayudarte y guiarte a través de este proceso.

Si la solución le resultó útil, compártala con la comunidad de Magento a través de las redes sociales. ¡Gracias!

✨Lectura relacionada:

1. Cómo crear el estado del pedido de Magento 2 y el estado del pedido

2. Cómo obtener información de pedido por ID de pedido en Magento 2