¿Hay alguna forma de eliminar múltiples productos al filtrar con SKU? Tengo alrededor de 1000 productos que quiero eliminar.
12
La forma más rápida de hacerlo es ejecutar esta consulta directamente.
DELETE FROM `catalog_product_entity` WHERE `sku` IN ('SKU1', 'SKU2', ...., 'SKU1000');
Todo debería caer en cascada muy bien. los valores de los atributos se eliminarán, las relaciones de categoría se eliminarán, las ventas adicionales, las ventas cruzadas y las relacionadas, etc.
[EDITAR]
Hay un problema con esto. Gracias a STW por detectar esto. Las revisiones y calificaciones permanecerán huérfanas porque no hay una clave externa para la tabla de productos para ellos.
->delete()
pero esquivará cualquier código que escuche eventos. En existencia, Magento parece que las reseñas y clasificaciones quedarán huérfanas (no se eliminarán cuando su producto asociado lo esté).catalog_product_entity_*
tablas tienen un FK en elentity_id
campo alcatalog_product_entity.entity_id
campo. Deben caer en cascada muy bien.Todo el debido respeto a Marius, pero no interactúe con la base de datos directamente si es evitable. Tal vez las tablas relacionadas se actualicen automáticamente, si su lanzamiento de Magento y todas sus extensiones están libres de errores en todos los lugares correctos. Pero si no lo son, ese tipo de cosas pueden destruir su sitio.
En su lugar, puede usar la característica de importación CSV de Magento.
Simplemente enumere sus SKU en un archivo, simple como:
... etc. Luego guárdelo como un archivo CSV.
Luego, en Sistema> Importar / Exportar> Importar, seleccione Tipo de entidad: Productos e Importar comportamiento: Eliminar entidades e importe este archivo. ¡Y eso es!
fuente
Mage_ImportExport_Model_Import_Entity_Product::_deleteProducts()
)Puedes hacerlo programáticamente. Cree un skustodelete.csv que enumere todos los skus que se eliminarán y después de eso, aquí está el código para continuar
fuente
La forma sin código
En la sección de administración debajo
Manage Products
encontrará una grilla con todos sus productos. Hay una columna llamadaSKU
. Aquí puede filtrar sus productos según el valor.Luego, una vez que haya filtrado por SKU, puede usar las casillas de verificación en el lado izquierdo para seleccionar todos los elementos que desea eliminar.
Observe
select all
que seleccionará todos los elementos en la cuadrícula completa yselect visible
que solo seleccionará elementos en la página actual de la cuadrícula.Una vez que haya seleccionado los elementos que desea, puede usar el botón de acción masiva en la parte superior derecha de la cuadrícula y seleccionar la opción Eliminar.
Esto le pedirá que se asegure de que desea eliminar estos elementos. Después de seleccionar sí a esta ventana emergente, procederá a eliminar sus elementos. Dependiendo de la configuración de su índice, es posible que deba volver a indexar después de este proceso.
fuente
Kevin S, puede eliminar el producto por archivo csv. Solo sigue el paso ondulante
Paso 1 :
Cree un archivo csv y pegue los skus que desea eliminar del sistema. Dé el nombre del archivo como skus.csv
Paso 2 :
Crea y reemplaza un archivo php en tu directorio raíz. Luego pasa el siguiente código
Nota: Antes de ejecutar este código, le recomendé que debe obtener la copia de seguridad. Espero que sea de ayuda.
fuente
Porque listar tablas
son claves foráneas de catalog_product_entity.
Entonces, cuando elimine un registro en catalog_product_entity, también se eliminarán algunos registros de las tablas anteriores.
El código (implementar la respuesta de Marius) elimina todos los productos que tienen entity_id <= 18069:
fuente