Exibindo qtd de produtos cadastrados

Escrito por Mario SAM

Uma estratégia muito comum em blogs e fóruns da internet é exibir o número de itens publicados, como: total de post’s, total de tópicos, total de usuários, e assim por diante.

Em sites de comércio eletrônico essa informação costuma aparecer somente quando utilizamos filtros de pesquisa, algo como: 5 itens encontrados, ou Eletrônicos (15) – indicando que existem 15 itens na categoria eletrônicos.

E como podemos manipular essa informação, para exibir em outras áreas da sua loja Magento? Talvez você queira informar ao seu cliente, de forma dinâmica, quantos produtos você tem cadastrado na loja, ou em determinada categoria.

Caso você queira exibir a quantidade em estoque de determinado produto no frontend leia o post: Exibir qtd em estoque.

Total de produtos na loja

Tudo que precisamos fazer é solicitar ao modelo de dados do Magento que carregue uma coleção (faça um select), e depois recuperamos o tamanho (size) dessa coleção. Colocando isso em forma de código teríamos:

__("Total products: ")?>getCollection()->getSize()?>

Basta adicionar este código dentro de um arquivo phtml e ver o resultado. Sendo que o código responsável por carregar a coleção e recuperar o número de registros é:

Mage::getModel('catalog/product')->getCollection()->getSize()

Com isso você consegue mostrar o total de produtos cadastrados na sua loja.

Total de produtos por categoria

Talvez você queira exibir o total de produtos por categoria, ao invés de exibir o total da loja. E a lógica utilizada será a mesma, porém, o código difere um pouco, pois agora será preciso carregar uma coleção diferente de dados, e informar o ID da categoria.

__("Total category X: ")?>load(5)->getProductCollection()->getSize()?>

Veja que neste código eu informo ->load( 5 ). Onde 5 (cinco) é o ID da minha categoria. Então para carregar os produtos de uma categoria específica e obter o total de registros encontrados, basta usar:

Mage::getModel('catalog/category')->load(5)->getProductCollection()->getSize()

Para saber o ID da sua categoria, basta acessar seu backend, e clicar sobre o nome da categoria.

id da categoria

Filtrando resultados

Em algumas ocasiões pode ser interessante filtrar o total de produtos utilizando algumas condições, como por exemplo: total de produtos abaixo de R$ 100 reais, ou total de produtos da marca X, etc.

Nesse caso, basta adicionar o comando addFiledToFilter à sua coleção de dados, informando o nome do campo e a condição:

->addFieldToFilter('is_active',1)

Uma alternativa seria usar o comando addAttributeToFilter, que funciona para modelos com estrutura EAV:

->addAttributeToFilter('visibility',4) //catalog, search

Na dúvida utilize o primeiro comando.

Para mais informações sobre como manipular a coleção de dados no Magento, visite o wiki oficial em: Using Collections in Magento.

Qualquer dúvida use o fórum da Escola Magento.

Sucesso!

O Autor

Mario SAM

Desenvolvedor Magento com certificação M1 Developer e M1 FrontEnd Developer. Graduado em Web Design e Programação, pós-graduado em Gestão de Projetos e TI. Não sou matemático mas estou aqui para somar.