Exibir Quantidade em Estoque no Frontend

Escrito por Mario SAM

Pequenos lojistas, ou mesmo muitas pessoas que estão começando no comércio eletrônico possuem uma quantidade muito limitada de produtos em estoque. E muitas vezes a reposição destes produtos demanda tempo e dinheiro.

E exibir a quantidade do estoque no frontend, pode ajudar a reduzir muitos problemas de atendimento, e até mesmo estimular as vendas.

Imagine que você crie uma promoção do tipo “enquanto durarem os estoques“. Seria interessante mostrar aos visitantes do seu site que as vendas estão acontecendo, e que se pensar demais, vai ficar sem produto.

Alterando a página

É supostamente algo simples de fazer, pois não precisamos fazer nenhuma configuração de backend. Basta adicionarmos um código no seu arquivo de template (frontend). Então abra o arquivo:

app > design > frontend > default > default > template > catalog > product > view > type > default.phtml

Se você não encontrar este arquivo, procure em base/default, faça uma cópia e mova para default/default.

Você poderia escolher qualquer outro arquivo para exibir o estoque, mas você já vai entender por que eu escolhi este. Se desejar usar outro arquivo, use a dica do Debug para encontrar o caminho do arquivo.

É um arquivo bem simples de entender, depois do parágrafo (In stock) você adiciona o código:

loadByProduct($_product)->getQty(),0))?>

Basta salvar e testar. Nesse caso ele só vai exibir a quantidade quando houver produto em estoque, isso elimina a necessidade de criarmos outras verificações.

Uma variação interessante

Outra situação interessante re-aproveitando esse código seria, ao invés de exibir a quantidade em estoque, verificar a quantidade e alertar o visitante com mensagens do tipo:

– Últimas unidades (abaixo de 3 itens)

– Poucas unidades (abaixo de 10 itens)

– Atendemos grandes pedidos (acima de 10 itens)

Nesse caso faríamos uma pequena alteração no código, jogando a quantidade em uma variável e depois verificando seu valor para saber qual mensagem exibir, algo como:

loadByProduct($_product)->getQty();
if ( $qtd < 3 ) {
    echo $this->__('Last units');
} else if ( $qtd < 10 ) {
    echo $this->__('Few units');
} else {
    echo $this->__('We service large orders');
}
?>

Lembre-se de não incluir frases/textos/palavras nos arquivos phtml, use sempre o translate.csv como mostrado no post Tradução Estendida.

Outras variações

Minha intenção aqui foi de mostrar algumas possibilidades de personalização de leiaute, claro que com imaginação você pode ir muito além disso.

Se você trabalha com produtos configuráveis, lembre-se de que são formados por um conjunto de produtos simples, então o código acima continua valendo e você pode adaptar conforme suas necessidades. Não fique esperando que eu faça o seu trabalho! 😉

Mas se estiver com dificuldades em dar continuidade ao código, você pode me encontrar no 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.