Magento

Remover todas as fotos de um produto no Magento

Como remover todas as fotos de um produto no Magento, programaticamente.

Para realizar essa operação, iremos utilizar o model “catalog/product_attribute_media_api”.

Carregando model:

$mediaApi = Mage::getModel("catalog/product_attribute_media_api");

Segundo passo é recuperar as fotos que estão associadas ao produto, para isso iremos precisar do ID do produto.

$mediaApiItems = $mediaApi->items($id);

Com “foreach” iremos percorrer todos os items, removendo um a um.

foreach($mediaApiItems as $item) {  
  $datatemp=$mediaApi->remove($id, $item['file']); 
}

Repare no código acima a utilização do método “remove”, aonde passo o ID do produto no primeiro parâmetro e a foto no segundo.

Código completo para remover todas as fotos de um produto

$product = Mage::getModel('catalog/product')->load($id);

set_time_limit(0); 

if(method_exists($product,'getId')){

    $mediaApi = Mage::getModel("catalog/product_attribute_media_api");
   
    $mediaApiItems = $mediaApi->items($id);  
  
    foreach($mediaApiItems as $item) {  
      $datatemp=$mediaApi->remove($product->getId(), $item['file']); 
    }

}

No código completo eu carrego o produto antes para validar se ele realmente exite.

Utilizo também a função “set_time_limit(0)”, passando o valor zero eu deixo sem limite de tempo de execução para nosso script.

Observação e links

Depois que você remover todas as fotos de um produto não esqueça de limpar o Cache do Magento: Limpando cache programaticamente

Caso você queira adicionar uma foto, neste post tem tutorial com código fonte de exemplo: Como adicionar uma imagem no produto programaticamente

Resumo
Nome do Artigo
Como remover todas as fotos de um produto no Magento
Descrição
Tutorial de como remover todas as fotos de um produto no Magento, removendo item a item utilizando a função "remove" do model "product_attribute_media_api"
Autor
Editor
Roger Mauricio Takemiya
Logo do Editor

Post Recentes

Bloquear .env e .git no nginx: as regras que ainda deixam o arquivo vazar

Negar /.env no nginx parece resolvido até alguém pedir /wp-content/uploads/.env ou backup.sql. As regras que testei e os furos que…

13 horas atrás

Canonical errado no Yoast: corrigindo pelo filtro wpseo_canonical

O Search Console marca suas páginas 2, 3 e 4 como alternativas da página 1? Ajuste a tag canônica do…

16 horas atrás

Layout XML do Magento 2: remover bloco de módulo de terceiro

Um módulo de terceiro plantou um banner no topo da loja e você não quer desinstalar nada: tire o bloco…

1 dia atrás

Restaurar dump do Magento 2 em outro servidor: trocar a base_url no SQL

Importou o banco de produção e o site pula para o domínio antigo? Rode o UPDATE em core_config_data, limpe o…

2 dias atrás

Criar exceção customizada em PHP: quando estender Exception compensa

Seu catch trata pedido inexistente e banco fora do ar do mesmo jeito. Veja como criar exceção customizada em PHP…

3 dias atrás

DataProvider Magento 2: form do admin abre com campos vazios ao editar

O form do admin salva mas abre em branco na edição: veja o getData() indexado pelo id da entidade e…

4 dias atrás