Carregar um produto específico

Algumas vezes quando queremos personalizar a apresentação de produtos da loja, pode surgir a necessidade de carregar um produto em especial, um produto que é destaque dos demais seja na listagem do catálogo, ou em uma página específica.

Então vamos ver neste post de que forma podemos carregar um produto específico em nossas páginas.

O modo simples

Vamos começar pelo mais básico, onde podemos carregar algumas informações do produto com poucos cliques usando o widget’s do Magento. Para isso acesse:

CMS > Páginas

Neste exemplo vou utilizar a página inicial (homepage). Abra o menu conteúdo, e clique em [Inserir Widget…]

tipo de widget link do produto

Selecione o tipo “Link do Catálogo do Produto” e na sequência clique sobre o botão [Selecionar Produto…]

selecionar produto no widget

Basta clicar sobre o produto que deseja carregar. E para finalizar clique no botão no alto da tela [Inserir Widget]

botao inserir widget

Isso deve inserir o scriptlet no seu campo conteúdo:

{{widget type="catalog/product_widget_link" template="catalog/product/widget/link/link_block.phtml" id_path="product/1"}}

Observando o código podemos ver que inclui o ID do produto na variável id_path. E o arquivo que carrega as informações é o link_block.phtml.

O modo mais ou menos simples

Nesse caso vamos continuar editando uma página do CMS, porém sem fazer uso dos widget’s. Ou seja, você não consegue achar essa informação pronta no sistema para clicar e selecionar, é preciso digitar mesmo. Então no campo conteúdo da sua página insira:

{{block type="catalog/product_view" product_id="1" template="catalog/product/view.phtml"}}

Não é difícil de entender o scriptlet. Ele começa indicando que será utilizado o bloco de visualização de produtos, depois informa qual o ID do produto que será carregado, e por fim especifica que a página view.phtml deve renderizar as informações carregadas.

Esse código é muito parecido com uma listagem de catálogo. A diferença é que estamos carregando apenas um produto. Leia Produtos em destaque na página inicial.

O modo avançado

Chegou o momento de tirar as crianças da sala, vamos para a solução avançada, onde os fracos não tem vez. Usaremos o código:

load(1); ?>

Hein?! Esse drama todo pra mostrar uma linha minúscula dessas!? – Não subestime o tamanho da arma brother.

Estamos invocando o modelo de dados do produto, passando como parâmetro o ID=1, e atribuindo o resultado na variável de nome $p. E com isso podemos aproveitar essa variável para carregar qualquer informação do produto. Por exemplo:

getName()?>
getUrlPath()?>
getDescription()?>
getFinalPrice()?>
getSku()?>

Mas como saber quais campos eu posso carregar? A resposta é: qualquer campo!

O Magento não limita os atributos dos produtos na criação do set/get do objeto produto. Na verdade ele cria os get’s e set’s dinamicamente, por isso, se você criar o atributo “muitoloko“, vai conseguir recuperar o valor dele no frontend usando:

getMuitoloko()?>

Então basicamente basta você conhecer o nome dos atributos para saber o que pode ser carregado na página.

Ficou com dúvidas? Use o fórum da Escola Magento.

Sucesso!