Como excluir todos os produtos de um catálogo grande?

8

Estou trabalhando na importação de produtos de ~ 40k para o Magento. Preciso de uma maneira fácil de remover todos os produtos entre os testes, mas tentando fazer isso com os erros do administrador antes de ir muito longe.

Se eu tentar truncar a tabela diretamente, encontro muitas dependências que impedem as ações.

É possível apagar todos os produtos sem usar o administrador?

Ryre
fonte
11
Se for apenas para teste, pode ser a maneira mais fácil: faça backup do seu banco de dados antes da importação e restaure-o depois.
Arnaud L

Respostas:

4

Se você estiver importando via Mage_ImportExport, também há uma opção "DELETE". Se você aplicar isso no mesmo arquivo de importação, todos os SKUs contidos nesse arquivo serão excluídos.

No código, isso é ->setBehavior(Mage_ImportExport_Model_Import::BEHAVIOR_DELETE);

Você ainda pode truncar as tabelas específicas do produto via SQL - mas é claro que precisa resolver todas as dependências e também truncar essas tabelas.

Ou: crie um despejo de banco de dados "limpo" antes de importar e aplique esse despejo antes de cada teste.

Alex
fonte
Obrigado. O catálogo é muito grande para usar as ferramentas de importação padrão do Mage, por isso estamos usando um módulo de terceiros. Penso que a criação de um despejo de banco de dados limpo que eu possa restaurar é a minha melhor opção.
Ryre 24/07/2013
Qual módulo? Talvez esse também tenha uma opção de exclusão? Talvez ainda seja Mage_ImportExportbaseada?
24413 Alex
É o uRapidflow e não encontrei uma opção de exclusão em nenhum lugar.
Ryre 24/07/2013
Se você tiver Pro, em seguida, verificar unirgy.com/wiki/urapidflow/fixed_row_format#cpcatalog_product
Petar Dzhambazov
7

Você pode excluir todo o produto usando o Direct Sql.

Faça backup do seu banco de dados e execute as seguintes consultas sql.

Redefina todas as tabelas de produtos. Cuidado, o script abaixo excluirá TODOS os dados do produto, com 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;`

Remova as contagens de produtos da categoria no back-end

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

Remova o best-seller e a maioria dos produtos de visualização nos painéis

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

Lave toda a mesa plana de produtos

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

Remova a revisão e a classificação dos produtos

`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 liberação corporativa, as tabelas a seguir

`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
fonte
Vale ressaltar que, se você truncou seus produtos, é aconselhável executar o indexador. Especialmente se você estiver usando o Solr. Também para EE eu achei a tabela a seguir pode ser aclarado também: enterprise_catalog_product_rewriteE para CE e EE:catalogsearch_query catalog_product_entity_url_key
Panpipes
resposta perfeita com explicação +1 :) !!!
SagarPPanchal
3

Você já olhou para Magmi ? Um de seus plugins "avançados" é um Catálogo Transparente, super rápido e redefinindo o ID para 1.

Magmi no SourceForge

andyjv
fonte