
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.
$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.
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
Pedido que não fatura e e-mail que não sai porque todo job fica missed: como ler a cron_schedule, conferir o…
Uma função curta em PHP 8.3 que transforma Camiseta Preta Tamanho GG em camiseta-preta-tamanho-gg, sem depender do locale do servidor.
O banner registra o clique só no navegador e some. Veja a tabela MySQL e o endpoint que gravam a…
A classe do comando existe e o bin/magento list ignora ela. Falta o registro no di.xml: aqui vai a classe…
Como traduzir duas mil linhas do pt_BR.csv do Magento 2 lendo com fgetcsv e regravando com fputcsv, sem encostar na…
Produto variável respondendo "Desculpe, este produto não está disponível" mesmo com a variação ativa: limpe os transients do WooCommerce e…