2012-08-07 23 views
7

He intentado importar una lista de productos a magento. En la primera prueba, obtuve el éxito, pero los productos no aparecían en la parte de atrás o en la oficina principal.Cómo eliminar todos los productos del catálogo en Magento

Después de rehacer el proceso de importación pocas veces, descubrí que tengo los productos importados en la base de datos, pero aún no se muestran.

Si accedo a Catálogo> Administrar categorías> Categoría predeterminada -> Productos de categoría Puedo ver los productos importados.

Más tarde, encontré un error en mi archivo de importación ... y me puede importar correctamente los productos

conflictos en lugar .... he encontrado en el campo 'SKU' ...

esos primeros productos aún no se muestran, pero todavía están en la base de datos ...

Pregunta: ¿Cómo elimino esos productos si no puedo acceder a ellos ???? ¿Puedo hacer eso directamente en la base de datos? borrar las filas puede generar otros problemas?

¡cualquier pista será apreciada!

Magento ver. 1.7.0.1

Respuesta

18

Restablecer todas las tablas de productos. Tenga cuidado, debajo de la secuencia de comandos eliminará TODOS los datos de su producto, así que hágalo con cuidado.

SET FOREIGN_KEY_CHECKS = 0; 
TRUNCATE TABLE `catalog_product_bundle_option`; 
TRUNCATE TABLE `catalog_product_bundle_option_value`; 
TRUNCATE TABLE `catalog_product_bundle_selection`; 
TRUNCATE TABLE `catalog_product_entity_datetime`; 
TRUNCATE TABLE `catalog_product_entity_decimal`; 
TRUNCATE TABLE `catalog_product_entity_gallery`; 
TRUNCATE TABLE `catalog_product_entity_int`; 
TRUNCATE TABLE `catalog_product_entity_media_gallery`; 
TRUNCATE TABLE `catalog_product_entity_media_gallery_value`; 
TRUNCATE TABLE `catalog_product_entity_text`; 
TRUNCATE TABLE `catalog_product_entity_tier_price`; 
TRUNCATE TABLE `catalog_product_entity_varchar`; 
TRUNCATE TABLE `catalog_product_link`; 
TRUNCATE TABLE `catalog_product_link_attribute`; 
TRUNCATE TABLE `catalog_product_link_attribute_decimal`; 
TRUNCATE TABLE `catalog_product_link_attribute_int`; 
TRUNCATE TABLE `catalog_product_link_attribute_varchar`; 
TRUNCATE TABLE `catalog_product_link_type`; 
TRUNCATE TABLE `catalog_product_option`; 
TRUNCATE TABLE `catalog_product_option_price`; 
TRUNCATE TABLE `catalog_product_option_title`; 
TRUNCATE TABLE `catalog_product_option_type_price`; 
TRUNCATE TABLE `catalog_product_option_type_title`; 
TRUNCATE TABLE `catalog_product_option_type_value`; 
TRUNCATE TABLE `catalog_product_super_attribute`; 
TRUNCATE TABLE `catalog_product_super_attribute_label`; 
TRUNCATE TABLE `catalog_product_super_attribute_pricing`; 
TRUNCATE TABLE `catalog_product_super_link`; 
TRUNCATE TABLE `catalog_product_enabled_index`; 
TRUNCATE TABLE `catalog_product_website`; 
TRUNCATE TABLE `catalog_product_entity`; 
TRUNCATE TABLE `cataloginventory_stock`; 
TRUNCATE TABLE `cataloginventory_stock_item`; 
TRUNCATE TABLE `cataloginventory_stock_status`; 
TRUNCATE TABLE `catalog_product_link`; 
TRUNCATE TABLE `catalog_product_link_type`; 
TRUNCATE TABLE `catalog_product_option`; 
TRUNCATE TABLE `catalog_product_option_type_value`; 
TRUNCATE TABLE `catalog_product_super_attribute`; 
TRUNCATE TABLE `catalog_product_entity`; 
TRUNCATE TABLE `cataloginventory_stock`; 
TRUNCATE TABLE `catalog_category_product`; 
DELETE FROM catalog_product_flat_1; 
DELETE FROM catalog_product_flat_10; 
DELETE FROM catalog_product_flat_11; 
DELETE FROM catalog_product_flat_12; 
DELETE FROM catalog_product_flat_13; 
DELETE FROM catalog_product_flat_14; 
DELETE FROM catalog_product_flat_15; 
DELETE FROM catalog_product_flat_16; 
DELETE FROM catalog_product_flat_17; 
DELETE FROM catalog_product_flat_18; 
DELETE FROM catalog_product_flat_19; 
DELETE FROM catalog_product_flat_2; 
DELETE FROM catalog_product_flat_20; 
DELETE FROM catalog_product_flat_21; 
DELETE FROM catalog_product_flat_22; 
DELETE FROM catalog_product_flat_23; 
DELETE FROM catalog_product_flat_24; 
DELETE FROM catalog_product_flat_25; 
DELETE FROM catalog_product_flat_26; 
DELETE FROM catalog_product_flat_27; 
DELETE FROM catalog_product_flat_28; 
DELETE FROM catalog_product_flat_29; 
DELETE FROM catalog_product_flat_3; 
DELETE FROM catalog_product_flat_30; 
DELETE FROM catalog_product_flat_31; 
DELETE FROM catalog_product_flat_32; 
DELETE FROM catalog_product_flat_33; 
DELETE FROM catalog_product_flat_34; 
DELETE FROM catalog_product_flat_35; 
DELETE FROM catalog_product_flat_36; 
DELETE FROM catalog_product_flat_37; 
DELETE FROM catalog_product_flat_4; 
DELETE FROM catalog_product_flat_5; 
DELETE FROM catalog_product_flat_6; 
DELETE FROM catalog_product_flat_7; 
DELETE FROM catalog_product_flat_8; 
DELETE FROM catalog_product_flat_9; 
SET FOREIGN_KEY_CHECKS = 1; 

insert into `catalog_product_link_type`(`link_type_id`,`code`) values (1,'relation'),(2,'bundle'),(3,'super'),(4,'up_sell'),(5,'cross_sell'); 
insert into `catalog_product_link_attribute`(`product_link_attribute_id`,`link_type_id`,`product_link_attribute_code`,`data_type`) values (1,2,'qty','decimal'),(2,1,'position','int'),(3,4,'position','int'),(4,5,'position','int'),(6,1,'qty','decimal'),(7,3,'position','int'),(8,3,'qty','decimal'); 
insert into `cataloginventory_stock`(`stock_id`,`stock_name`) values (1,'Default'); 

Es posible que deba volver a indexar todos los índices después de ejecutar la consulta anterior.

System > Index Management > Reindex all

http://ka.lpe.sh/2012/08/09/magento-how-to-delete-remove-all-products-from-all-categories/

Que se diviertan!

+0

thnx mucho @Kalpesh Mehta funcionó casi perfecta. Limpió los productos, pero, en - Catálogo> Administrar categorías - Los nombres de la categoría todavía tienen la cantidad de productos, como: Categoría predeterminada (5) ... pero no hay productos vinculados a ninguna categoría –

+0

que pueda necesitar hacer Re -indexando .. 'Admin> Sistema> Index Management' – Kalpesh

+0

Seguro que lo hice, de hecho muchas veces. Y el sistema de caché se ha desactivado desde que comencé ... Probé su solución solo en mi servidor local, todavía no en línea ... –

0

también hay que añadir:

TRUNCATE TABLE catalog_product_entity; 

De lo contrario se producirán errores de restricción de integridad.

+0

esto ya está presente en la otra respuesta, no hay necesidad de ponerlo dos veces – OSdave

0

La respuesta de Kalpesh Mehta funciona sin problemas.

Pero después de quitar todos los productos, manojo importación de nuevos Prodcuts y tratar de eliminarla usando administrador de interfaz de usuario que pudiera un error como este:

SQLSTATE [22003]: Valor numérico fuera de rango: 1690 BIGINT valor sin signo está fuera de rango en '(.. magento_storeqitems_count - 1)'

por lo tanto, este artículo me ha ayudado mucho: Magento deleting product BIGINT UNSIGNED value is out of range

se p rovides varias opciones para resolver un problema y el primero trabajaron en mi caso:

DELETE FROM sales_flat_quote WHERE updated_at < DATE_SUB(Now(),INTERVAL 30 DAY); 
5

productos de borrado con una consulta SQL no es la forma de Magento y yo no recomendaría hacerlo. Puede causar daños en la base de datos o problemas con los índices/restricciones de la clave externa as stated here.

Todo el mundo interesado en utilizar una forma correcta, segura y también rápida de alterar las cosas en Magento SIEMPRE debe usar las funciones ORM de Magento.

En este caso, esto sería en un script php.

Mage::getModel('catalog/product')->getCollection()->delete(); 

Esta es la única manera segura en Magento.

+0

Esto definitivamente debería ser la respuesta aceptada. –

1

Puede eliminar todo el producto usando Direct Sql.

Haga una copia de seguridad de su base de datos y ejecute las siguientes consultas sql.

Restablecer todas las tablas de productos. Tenga cuidado, debajo de la secuencia de comandos eliminará TODOS los datos de su producto, así que hágalo con cuidado.

`SET FOREIGN_KEY_CHECKS = 0; 
TRUNCATE TABLE `catalog_product_bundle_option`; 
TRUNCATE TABLE `catalog_product_bundle_option_value`; 
TRUNCATE TABLE `catalog_product_bundle_selection`; 
TRUNCATE TABLE `catalog_product_entity_datetime`; 
TRUNCATE TABLE `catalog_product_entity_decimal`; 
TRUNCATE TABLE `catalog_product_entity_gallery`; 
TRUNCATE TABLE `catalog_product_entity_int`; 
TRUNCATE TABLE `catalog_product_entity_media_gallery`; 
TRUNCATE TABLE `catalog_product_entity_media_gallery_value`; 
TRUNCATE TABLE `catalog_product_entity_text`; 
TRUNCATE TABLE `catalog_product_entity_tier_price`; 
TRUNCATE TABLE `catalog_product_entity_varchar`; 
TRUNCATE TABLE `catalog_product_link`; 
TRUNCATE TABLE `catalog_product_link_attribute`; 
TRUNCATE TABLE `catalog_product_link_attribute_decimal`; 
TRUNCATE TABLE `catalog_product_link_attribute_int`; 
TRUNCATE TABLE `catalog_product_link_attribute_varchar`; 
TRUNCATE TABLE `catalog_product_link_type`; 
TRUNCATE TABLE `catalog_product_option`; 
TRUNCATE TABLE `catalog_product_option_price`; 
TRUNCATE TABLE `catalog_product_option_title`; 
TRUNCATE TABLE `catalog_product_option_type_price`; 
TRUNCATE TABLE `catalog_product_option_type_title`; 
TRUNCATE TABLE `catalog_product_option_type_value`; 
TRUNCATE TABLE `catalog_product_super_attribute`; 
TRUNCATE TABLE `catalog_product_super_attribute_label`; 
TRUNCATE TABLE `catalog_product_super_attribute_pricing`; 
TRUNCATE TABLE `catalog_product_super_link`; 
TRUNCATE TABLE `catalog_product_enabled_index`; 
TRUNCATE TABLE `catalog_product_website`; 
TRUNCATE TABLE `catalog_product_entity`; 
TRUNCATE TABLE `cataloginventory_stock`; 
TRUNCATE TABLE `cataloginventory_stock_item`; 
TRUNCATE TABLE `cataloginventory_stock_status`; 
INSERT INTO `catalog_product_link_type` VALUES(1, 'relation'); 
INSERT INTO `catalog_product_link_type` VALUES(3, 'super'); 
INSERT INTO `catalog_product_link_type` VALUES(4, 'up_sell'); 
INSERT INTO `catalog_product_link_type` VALUES(5, 'cross_sell'); 
INSERT INTO `catalog_product_link_attribute` VALUES(1, 1, 'position', 'int'); 
INSERT INTO `catalog_product_link_attribute` VALUES(2, 3, 'position', 'int'); 
INSERT INTO `catalog_product_link_attribute` VALUES(3, 3, 'qty', 'decimal'); 
INSERT INTO `catalog_product_link_attribute` VALUES(4, 4, 'position', 'int'); 
INSERT INTO `catalog_product_link_attribute` VALUES(5, 5, 'position', 'int'); 
INSERT INTO `cataloginventory_stock` VALUES(1, 'Default'); 
SET FOREIGN_KEY_CHECKS = 1;` 

**Remove the Product counts from category at back-end** 

`SET FOREIGN_KEY_CHECKS = 0; 
TRUNCATE TABLE `catalog_category_product`; 
TRUNCATE TABLE `catalog_category_product_index`; 
SET FOREIGN_KEY_CHECKS = 1;` 


**Remove the Bestseller and Most view Products at Dashboards** 

`SET FOREIGN_KEY_CHECKS = 0; 
TRUNCATE TABLE `report_compared_product_index`; 
TRUNCATE TABLE `report_viewed_product_aggregated_daily`; 
TRUNCATE TABLE `report_viewed_product_aggregated_monthly`; 
TRUNCATE TABLE `report_viewed_product_aggregated_yearly`; 
TRUNCATE TABLE `report_viewed_product_index`; 
TRUNCATE TABLE `sales_bestsellers_aggregated_daily`; 
TRUNCATE TABLE `sales_bestsellers_aggregated_monthly`; 
TRUNCATE TABLE `sales_bestsellers_aggregated_yearly`; 
SET FOREIGN_KEY_CHECKS = 1;` 

**Flush all the flat table of products** 

`SET FOREIGN_KEY_CHECKS = 0; 
DELETE FROM catalog_product_flat_1; 
DELETE FROM catalog_product_flat_2; 
DELETE FROM catalog_product_flat_3; 
DELETE FROM catalog_product_flat_4; 
DELETE FROM catalog_product_flat_5; 
SET FOREIGN_KEY_CHECKS = 1;` 

**Remove the review and rating of products** 

`SET FOREIGN_KEY_CHECKS = 0; 
TRUNCATE table `rating_option_vote`; 
TRUNCATE table `rating_option_vote_aggregated`; 
TRUNCATE table `review`; 
TRUNCATE table `review_detail`; 
TRUNCATE table `review_entity_summary`; 
TRUNCATE table `review_store`; 
SET FOREIGN_KEY_CHECKS = 1;` 

**For enterprise flush the following tables** 

`SET FOREIGN_KEY_CHECKS = 0; 
TRUNCATE TABLE `catalog_category_flat_cl`; 
TRUNCATE TABLE `catalog_category_product_cat_cl`; 
TRUNCATE TABLE `catalog_category_product_index_cl`; 
TRUNCATE TABLE `catalog_product_flat_cl`; 
TRUNCATE TABLE `catalog_product_index_price_cl`; 
TRUNCATE TABLE `cataloginventory_stock_status_cl`; 
TRUNCATE TABLE `catalogsearch_fulltext_cl`; 
SET FOREIGN_KEY_CHECKS = 1;` 
0

Con su SQL-SQL Script me rompí el índice de precios. Esto sucede porque utilizamos precios grupales en la tienda. Error de seguimiento se produjo cada timewhen he intentado volver a indexar el índice "catalog_product_price":

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails  (`db`.`catalog_product_index_group_price`, CONSTRAINT `FK_CAT_PRD_IDX_GROUP_PRICE_ENTT_ID_CAT_PRD_ENTT_ENTT_ID` FOREIGN KEY (`entity_id`) REFERENCES `catalog_product_entity` (`entity_id`), query was: INSERT INTO `catalog_product_index_group_price` SELECT `gp`.`entity_id`, `cg`.`customer_group_id`, `cw`.`website_id`, MIN(IF(gp.website_id = 0, ROUND(gp.value * cwd.rate, 4), gp.value)) FROM `catalog_product_entity_group_price` AS `gp` 
INNER JOIN `customer_group` AS `cg` ON gp.all_groups = 1 OR (gp.all_groups = 0 AND gp.customer_group_id = cg.customer_group_id) 
INNER JOIN `core_website` AS `cw` ON gp.website_id = 0 OR gp.website_id = cw.website_id 
INNER JOIN `catalog_product_index_website` AS `cwd` ON cw.website_id = cwd.website_id WHERE (cw.website_id != 0) GROUP BY `gp`.`entity_id`, 
     `cg`.`customer_group_id`, 
     `cw`.`website_id` ON DUPLICATE KEY UPDATE `price` = VALUES(`price`) 

Por favor, añada la línea siguiente:

TRUNCATE TABLE `catalog_product_entity_group_price`; 
Cuestiones relacionadas