Magento 2: Borrar en masa categorías

Si estás leyendo esto, seguramente es que te has dado con el golpe de tener que borrar varias categorías en Magento 2 y tener que hacerlo una a una.  Pese a que ha mejorado mucho en algunos aspectos con su primera versión, parece que se han olvidado de dar la opción de hacer un bulk delete o un borrado en masa como decimos en Castellano en las categorías. Cuando estás programando nuevas funcionalidades que requiere que estés insertando categorías todo el rato (por ejemplo añadiendo atributos desde un módulo creado por nosotros mismos, o un importador de datos desde otra plataforma)

Con este script SQL podrás borrar con seguridad todas las dependencias de las categorías y tener por seguro que no ha dejado ningún residuo.

Puedes ejecutarlo en línea de comandos, usando el Wokrbench o con el PHPMyAdmin, eso ya es tu elección.

SET FOREIGN_KEY_CHECKS = 0;

TRUNCATE TABLE catalog_category_entity;

TRUNCATE TABLE catalog_category_entity_datetime; 
TRUNCATE TABLE catalog_category_entity_decimal; 
TRUNCATE TABLE catalog_category_entity_int; 
TRUNCATE TABLE catalog_category_entity_text; 
TRUNCATE TABLE catalog_category_entity_varchar; 
TRUNCATE TABLE catalog_category_product; 
TRUNCATE TABLE catalog_category_product_index;

INSERT INTO `catalog_category_entity` (`entity_id`, `attribute_set_id`, `parent_id`, `created_at`, `updated_at`, `path`, `position`, `level`, `children_count`) VALUES ('1', '0', '0', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '1', '0', '0', '1'),
('2', '3', '1', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '1/2', '1', '1', '0');

INSERT INTO `catalog_category_entity_int` (`value_id`, `attribute_id`, `store_id`, `entity_id`, `value`) VALUES 
('1', '69', '0', '1', '1'),
('2', '46', '0', '2', '1'),
('3', '69', '0', '2', '1');

INSERT INTO `catalog_category_entity_varchar` (`value_id`, `attribute_id`, `store_id`, `entity_id`, `value`) VALUES 
('1', '45', '0', '1', 'Root Catalog'),
('2', '45', '0', '2', 'Default Category');

SET FOREIGN_KEY_CHECKS = 1;

DELETE FROM url_rewrite WHERE entity_type = 'category';

Si no te has equivocado haciendo el copy-paste, debería haber borrado todas las categorías y estar listo para volver a empezar.

¡Recuerda hacer antes una copia de tu base de datos, no me hago responsable de que la líes parda!

Programación Magento 2

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.