Existe alguma maneira de excluir vários produtos filtrando com o SKU? Tenho cerca de 1000 produtos que desejo excluir.
12
A maneira mais rápida de fazer isso é executar essa consulta diretamente.
DELETE FROM `catalog_product_entity` WHERE `sku` IN ('SKU1', 'SKU2', ...., 'SKU1000');
Tudo deve cascata bem. os valores dos atributos serão excluídos, as relações de categoria serão excluídas, upsells, crosssells e afins.
[EDIT]
Há um problema nisso. Obrigado à STW por detectar isso. As revisões e classificações permanecerão órfãs porque não há chave estrangeira na tabela de produtos para elas.
->delete()
mas evita qualquer escuta de código de eventos. Em estoque, Magento, parece que as avaliações e classificações ficarão órfãs (elas não serão excluídas quando o produto associado for).catalog_product_entity_*
tabelas têm um FK noentity_id
campo acatalog_product_entity.entity_id
campo. Eles devem cascatear bem.Com o devido respeito ao Marius, mas não interaja diretamente com o banco de dados, se for evitável. Talvez as tabelas relacionadas sejam atualizadas automaticamente, se o seu lançamento do Magento e todas as suas extensões estiverem livres de bugs nos lugares certos. Mas, se não estiverem, esse tipo de coisa pode destruir seu site.
Em vez disso, você pode usar o próprio recurso de importação de CSV do Magento.
Basta listar seus SKUs em um arquivo, simples como:
... etc Em seguida, salve como um arquivo CSV.
Em Sistema> Importar / Exportar> Importar, selecione Tipo de Entidade: Produtos e Comportamento de Importação: Excluir Entidades e importe esse arquivo. E é isso!
fonte
Mage_ImportExport_Model_Import_Entity_Product::_deleteProducts()
)Você pode fazer isso programaticamente. Crie um skustodelete.csv listando todos os skus a serem excluídos e, depois disso, aqui está o código para prosseguir
fonte
A maneira sem código
Na seção de administração,
Manage Products
encontrará uma grade com todos os seus produtos. Há uma coluna chamadaSKU
. Aqui você pode filtrar seus produtos com base no valor.Depois de filtrar por SKU, você pode usar as caixas de seleção no lado esquerdo para selecionar todos os itens que deseja excluir.
Observe o
select all
que selecionará todos os itens na grade completa e oselect visible
que selecionará apenas itens na página atual da grade.Depois de selecionar os itens desejados, você pode usar o botão de ação em massa no lado superior direito da grade e selecionar a opção de exclusão.
Isso solicitará que você tenha certeza de que deseja excluir esses itens. Após selecionar sim neste pop-up, ele excluirá seus itens. Dependendo das configurações do seu índice, pode ser necessário executar um re-índice após esse processo.
fonte
Kevin S, você pode excluir o produto por arquivo csv. Basta seguir a etapa da vaga
Passo 1 :
Crie um arquivo csv e passe os skus que deseja excluir do sistema. Dê o nome do arquivo como skus.csv
Passo 2 :
Crie e substitua um arquivo php em seu diretório raiz. Depois do código a seguir
Nota: Eu recomendei a você antes de executar este código, você deve obter o backup. Espero que seja de ajuda.
fonte
Porque tabelas de lista
são chaves estrangeiras de catalog_product_entity.
Portanto, ao excluir um registro em catalog_product_entity, alguns registros das tabelas acima também serão excluídos.
O código (implemente a resposta de Marius) exclui todos os produtos que possuem entity_id <= 18069:
fonte