Trabalhando com Collections no Magento

Olá, neste post irei explicar resumidamente como o Magento trabalha com collections. O Magento foi desenvolvido sob tecnologia Zend Framework e trabalha com um banco de dados extremamente flexível graças as tabelas EAV. Isso dificulta para quem precisa realizar uma busca em SQL para trazer dados.

O uso do Zend Framework facilita esse trabalho. Em vez de usar aquelas SQLs complicadas cheias de JOINS, basta usar as collections do Magento.

Segue abaixo um passo a passo para criar uma página listando todos os produtos da loja usando as collections do Magento.

Primeiro crie o arquivo block.phtml dentro do diretorio template do seu tema atual.

Ex: app/design/frontend/SEU_TEMA/default/template/test/block.phtml. Dentro do arquivo colaremos o seguinte código:

<?php
/* Instancia o model de produtos do catalogo  */
$model = Mage::getModel("catalog/product");
/* Prepara a collection */
$collection = $model->getCollection();
/* Escolhe quais atributos vão ser chamados (Como se fossem as colunas de uma tabela )  */
$collection->addAttributeToSelect("name");
$collection->addAttributeToSelect("price");
$collection->addAttributeToSelect("image_url");
$collection->setPage(1,3);
/* Carrega a collection  */
$collection->load();
?>
<ul>
<?php foreach($collection as $product) : ?>
<li>
<img src="<?php echo $product->getImageUrl(); ?>" />
<a href="<?php echo $product->getProductUrl() ?>"><?php echo $product->getName() ?></a>- <?php echo number_format($product->getPrice(),2,",","."); ?>
</li>
<?php endforeach; ?>
</ul>

Agora vamos criar uma chamada do nosso bloco em uma nova página CMS.

Esse bloco deve ser do tipo core/template.

– Abra o painel administrativo do Magento;
– Selecione no menu superior a opção CMS->Pages;
– Escolha a opção criar página;
– Preencha os campos de titulo da página e nome da url; e
– Clique na aba content e cole o código abaixo.

{{block type="core/template" template="test/block.phtml"}}

Ao abrir a página CMS recém criada você vera a lista completa de produtos do seu catálogo.

Agora vamos entender a última parte do código onde nós fazemos um foreach e listamos os produtos. Você pode reparar que os métodos do product começam com “get”.

Esses métodos são chamados de métodos mágicos. Para utilizar os métodos mágicos basta escolher o atributo que você quer, tirar o underscore (se tiver) e colocar em maiúscula toda primeira letra.

Se você quiser por exemplo o preço do produto você pode utilizar o método getPrice(), se quiser o preço especial você pode utilizar getSpecialPrice().

Não esqueça de selecionar esses atributos na collection com o método addAttributeToSelect, senão você estará tentando acessar atributos que não foram selecionados anteriormente.

No final da lista de atributos a serem selecionados foi adicionada a chamada do método de paginação que limita a quantidade de itens a serem carregados pela collection.

O primeiro parâmetro diz respeito a quantidade de páginas que você deseja e o segundo diz respeito a quantidade de itens.

Essa foi uma breve explicação. Agora você será capaz de colocar produtos na página principal ou em blocos por todo o site e até mesmo criar novas funcionalidades.

2017-01-24T20:24:34+00:00

RECEBA DICAS VALIOSAS NO SEU EMAIL

x