¿Cómo eliminar todos los productos de un catálogo grande?

8

Estoy trabajando en la importación de ~ 40k productos en Magento. Necesito una manera fácil de eliminar todos los productos entre pruebas, pero intentar hacerlo desde los errores de administración antes de llegar muy lejos.

Si trato de truncar la tabla directamente, me encuentro con muchas dependencias que impiden las acciones.

¿Es posible borrar todos los productos sin usar el administrador?

Ryre
fuente
1
Si es solo para probar, la manera más fácil es: hacer una copia de seguridad de su base de datos antes de importarla y restaurarla después.
Arnaud L

Respuestas:

4

Si está importando a través de, Mage_ImportExporttambién hay una opción "BORRAR". Si aplica esto en el mismo archivo de importación, se eliminarán todos los SKU contenidos en este archivo.

En código esto es ->setBehavior(Mage_ImportExport_Model_Import::BEHAVIOR_DELETE);

Todavía puede truncar las tablas de productos específicos a través de SQL, pero, por supuesto, debe resolver todas las dependencias y también truncar esas tablas.

O bien: Cree un volcado de base de datos "limpio" antes de importar y aplique este volcado antes de cada prueba.

Alex
fuente
Gracias. El catálogo es demasiado grande para usar las herramientas de importación predeterminadas de Mage, por lo que estamos utilizando un módulo de terceros. Creo que crear un volcado de base de datos limpio desde el que pueda restaurar es mi mejor opción.
Ryre
Cual modulo ¿Tal vez ese también tiene una opción de eliminación? ¿Quizás todavía está Mage_ImportExportbasado?
Alex
Es uRapidflow, y no he encontrado una opción de eliminación en ningún lado.
Ryre
Si tiene Pro, consulte unirgy.com/wiki/urapidflow/fixed_row_format#cpcatalog_product
Petar Dzhambazov el
7

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, el siguiente script eliminará TODOS los datos de su producto, así que hágalo cuidadosamente.

`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;`

Eliminar los recuentos de productos de la categoría en el back-end

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

Elimine los productos más vendidos y más vistos en los paneles

`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;`

Enjuague toda la mesa plana de productos

`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;`

Eliminar la revisión y calificación de productos

`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;`

Para empotrar las siguientes tablas

`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;`
Kinjalkumar Prajapati
fuente
Vale la pena mencionar que si ha truncado sus productos, es aconsejable ejecutar el indexador. Especialmente si estás usando Solr. También para EE encontré que la siguiente tabla también podría enterprise_catalog_product_rewritecatalogsearch_query catalog_product_entity_url_key
borrarse
respuesta perfecta con explicación +1 :) !!!
SagarPPanchal
3

¿Has mirado a Magmi ? Uno de sus complementos "avanzados" es un Clear Catalog que es súper rápido e incluso restablece la ID a 1.

Magmi en SourceForge

andyjv
fuente