Como listar os produtos no Magento 2 utilizando uma Collection

Post ensinando a como listar os produtos no Magento 2 criando uma Collection, adicionando filtros para exibir apenas os produtos em estoque, ativos e presentes em determinadas categorias.

Como listar os produtos no Magento 2 utilizando uma Collection

Exemplo:

Em um bloco – Módulo

Para criar um módulo clique neste link: Como criar um Módulo no Magento 2

Você deve criar o arquivo HelloWord.php no diretório: Rogertakemiya/Test/Block

Conteúdo:

Para listar os produtos em um arquivo phtml, utilize:

Utilizando objectManager

Utilizar o Object Manager não é considera uma das melhores praticas para esse tipo de tarefa.

Por que?

  • O código poderia ser usado com uma estrutura de injeção de dependência diferente no futuro
  • O teste é mais fácil: você passa em argumentos simulados para a classe necessária, sem ter que fornecer um ObjectManager simulado
  • Mantém as dependências mais claras – é óbvio que o código depende da lista de construtores, em vez de ter dependências escondidas no meio do código
  • Encoraja os programadores a pensar sobre conceitos como encapsulamento e modularização. Se o construtor ficar grande, talvez seja um sinal de que o código precisa ser refatorado

A forma correta seria:

  • criando um módulo
  • declarando preferências
  • dependências de injeção
  • declarar um método público

Produtos ativos

Filtrando apenas os produtos ativos “habilitados” e com estoque.

Filtrando pelo nome do produto

Filtrando por múltiplas categorias

Conclusão

Listar os produtos no Magento 2 pode ser considerado uma tarefa complexa devido a necessidade de se criar um módulo para isso.

Evite utilizar o objectManager, qualquer dúvida por favor, fique a vontade para fazer um comentário.

Avalie este artigo!

Clique nas estrelas, para dar uma nota de 1 à 5.

1 estrela2 estrelas3 estrelas4 estrelas5 estrelas (1 votaram, média: 5,00 de 5)
Loading...

Dúvidas? Faça um comentário logo abaixo ou envie uma mensagem clicando aqui.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *