Algumas pessoas querem utilizar o Magento sem a opção de venda, apenas como catálogo, e no lugar de exibir os preços querem colocar a mensagem “R$ Consulte“.
Como a idéia do Magento é vender os produtos, essa opção não está disponível para configuração. No entanto, nós podemos criar essa possibilidade.
Dentre as inúmeras formas de fazer, eu criei uma que considero simples, fácil de entender e alterar conforme a necessidade de cada um.
Como pode acontecer de você querer alguns produtos com preços e outros sem preços, minha solução se baseia no valor do preço cadastrado do produto para venda. Para os produtos que você deseja que apareça a frase “Consulte” informe o valor de venda R$ 0,00.
E faça uma pequena alteração no código que exibe os produtos. Neste caso serão dois arquivos, um que exibe o produto com detalhes, e um que exibe o produto numa lista de opções.
O arquivo addtocart.phtml que fica dentro do seu tema -> template -> catalog -> product -> view altere isso:
<?php $_product = $this->getProduct() ?>
<?php if($_product->isSaleable()): ?>
<fieldset>
<legend><?php echo $this->__('Add Items to Cart') ?></legend>
<?php if(!$_product->isGrouped()): ?>
<span><label for="qty"><?php echo $this->__('Qty') ?>:</label>
<input name="qty" type="text" id="qty" maxlength="12" value="<?php echo $this->getMinimalQty($_product) ?>" /></span>
<?php endif; ?>
<button onclick="productAddToCartForm.submit()"><span><?php echo $this->__('Add to Cart') ?></span></button>
</fieldset>
<?php endif; ?>
para isso (apenas adicionei um comando if pra verificar o preço:
<?php $_product = $this->getProduct() ?>
<?php $preco = $this->getPriceHtml($_product, true);
if (strchr($preco,'R$ 0,00')) {
echo '<div><span id="product-price-2"><span>R$ Consulte</span></span></div>';
} else {
if($_product->isSaleable()): ?>
<fieldset>
<legend><?php echo $this->__('Add Items to Cart') ?></legend>
<?php if(!$_product->isGrouped()): ?>
<span><label for="qty"><?php echo $this->__('Qty') ?>:</label>
<input name="qty" type="text" id="qty" maxlength="12" value="<?php echo $this->getMinimalQty($_product) ?>" /></span>
<?php endif; ?>
<button onclick="productAddToCartForm.submit()"><span><?php echo $this->__('Add to Cart') ?></span></button>
</fieldset>
<?php endif; ?>
<?php } ?>
E no arquivo
list.phtml que fica no seu
tema -> template -> catalog -> product altere a linha
60 e
104 onde você encontra o código:
<?php echo $this->getPriceHtml($_product, true) ?>
Ao invés de imprimir esse valor na tela usando o “
echo“, vamos jogar o valor numa variável e verificar se deve ser exibido um valor ou a palavra consulte, assim:
<?php $preco = $this->getPriceHtml($_product, true);
if (strchr($preco,'R$ 0,00')) {
echo '<div><span id="product-price-2"><span>R$ Consulte</span></span></div>';
} else {
echo $preco;
?>
E ta feito. Provavelmente não é a melhor solução do planeta, mas funciona e é fácil de aplicar.
Sucesso!
Tutorial extraido do Blog do Mario Sam.
ATENÇÃO: DÚVIDAS OU MAIS ESCLARECIMENTOS ADICIONE UM TÓPICO NO FÓRUM.
Comentários
Mesmo o preço não sendo exibido, posso adicionar os produtos ao carrinho e efetuar o o envio dos produtos que desejo "consultar o valor" e o admin do magento vai receber este pedido?
Em meu template está dando um erro:
Parse error: syntax error, unexpected T_ENDFOREACH in /home/giftonline/www/app/design/frontend/blank/theme117/template/catalog/product/list.phtml on line 86
Site em teste: giftonline.kinghost.net/.../
Poderia me ajudar?
ah ! da uma juntadinha no 'R$ 0,00', coloca'R$0,00'
RSS feed para comentários a este post.