Página 1 de 1

Botão de acordo com o status do estoque

Enviado: 05 Dez 2012, 13:11
por xleox
Olá pessoal tudo bem?

Na minha loja trabalho com vários tipos de status de estoque (indisponivel, por encomenda, pré-venda, pronta entrega), mudei o nome de todos, os que estão indisponiveis e por encomenda coloquei para tirar o botão de compra (mas pretendo adicionar novamente o de por encomenda, assim que terminar outras alterações) mas senti que para o cliente ainda fica um pouco bagunçado para saber o status do produto sem clicar nele (principalmente quando o cliente vê os produtos nas categorias, sem entrar especificamente em cada página de produto, é como se tivessem apenas dois status).

Nisso eu achei essa idéia interessante http://img69.imageshack.us/img69/3069/botoes.jpg no caso ai da loja, pelo que percebi, ela adiciona automaticamente um botão ligado ao status do produto de acordo com o status atual (ou seja, o dono da loja não faz o upload com aquela tag na foto, ela muda automaticamente com o status, senão ficaria muito ruim sempre que um produto acabar ter que trocar a foto), é bem semelhante aquelas tags de "promoção" ou "lançamento" que algumas lojas também colocam. Alguém saberia como fazê-lo?

Aproveitando a imagem, logo abaixo tem um "latest pre-order", é como se ele tivesse um módulo novos produtos e outro módulo novos produtos em pré-venda, também me interessa bastante. Alguém que fez aquele tutorial de duplicar os módulos saberia se dá pra editar o nome assim e adicionar apenas pré-venda nele como nessa foto? Esse módulo de pré-venda também me interessa muito, já que, muitos clientes não gostam de esperar pré-vendas, então eu deixaria separado um do outro.

Obrigado desde já!

Re: Botão de acordo com o status do estoque

Enviado: 06 Dez 2012, 12:46
por victorlmt
Olha, sou iniciante aqui no opencart e também estou atrás de um módulo que faça o mesmo.

Se alguém ajudar estará ajudando também a mim.

Obrigado a todos que contribuem com essa comunidade que cresce a cada dia.

Re: Botão de acordo com o status do estoque

Enviado: 13 Dez 2012, 17:32
por xleox
ninguém tem idéia?

Re: Botão de acordo com o status do estoque

Enviado: 29 Jul 2013, 14:42
por tribo
Boa tarde,

Consegui uma solução parcial para este problema através de uma modificação no módulo: http://www.opencart.com/index.php?route ... sold%20out . A solução é parcial pois funciona nas listagens e nos módulos, porém, estou tendo dificuldades em fazê-la funcionar na página do produto pois as variáveis são diferentes. Será que alguém mais experiente poderia ajudar ? Vou postar a solução que tenho e talvez alguém ajude a resolver na página de produto. Abraço.

no XML do módulo, Encontre a linha:
Código: Selecionar todos
if ($product['quantity']>0) echo "<input type='button' value='$button_cart' onclick='addToCart($product[product_id]);' class='button' />";
Após, adicione a seguinte modificação em todos os arquivos listados no XML, exceto em product.php e product.tpl pois não vai funcionar.
Código: Selecionar todos
else if ($product['stock']=='Desculpe-nos, produto esgotado') echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Avise-me</a>";
No lugar de Desculpe-nos, produto esgotado, insira a situação de estoque desejada já cadastrada no Opencart.
No lugar de Avise-me e Encomendar, coloque o texto que deseja que apareça nos botões para cada caso. Este módulo desativa a função comprar e quando clica no botão abre a página de contato já com o nome do produto preenchido.

O código completo fica assim (para o arquivo popular.tpl, deve-se realizar a modificação em todos os arquivos que deseja aplicá-la):
Código: Selecionar todos
<file name="catalog/view/theme/*/template/module/popular.tpl">
    <operation>
      <search position="replace"><![CDATA[<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />]]></search>
      <add><![CDATA[
        <?php
        if ($product['quantity']>0) echo "<input type='button' value='$button_cart' onclick='addToCart($product[product_id]);' class='button' />";
        else if ($product['stock']=='Desculpe-nos, produto esgotado') echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Avise-me</a>";
        else echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Encomendar</a>";
        ?>
      ]]></add>
    </operation>
  </file>
Testado em Opencart 1.5.5.1
Site: http://www.tribodaxita.com.br
Espero ter ajudado.

Re: Botão de acordo com o status do estoque

Enviado: 28 Nov 2013, 10:43
por voicepropaganda
RESOLVIDO

tribo escreveu:Boa tarde,

Consegui uma solução parcial para este problema através de uma modificação no módulo: http://www.opencart.com/index.php?route ... sold%20out . A solução é parcial pois funciona nas listagens e nos módulos, porém, estou tendo dificuldades em fazê-la funcionar na página do produto pois as variáveis são diferentes. Será que alguém mais experiente poderia ajudar ? Vou postar a solução que tenho e talvez alguém ajude a resolver na página de produto. Abraço.

no XML do módulo, Encontre a linha:
Código: Selecionar todos
if ($product['quantity']>0) echo "<input type='button' value='$button_cart' onclick='addToCart($product[product_id]);' class='button' />";
Após, adicione a seguinte modificação em todos os arquivos listados no XML, exceto em product.php e product.tpl pois não vai funcionar.
Código: Selecionar todos
else if ($product['stock']=='Desculpe-nos, produto esgotado') echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Avise-me</a>";
No lugar de Desculpe-nos, produto esgotado, insira a situação de estoque desejada já cadastrada no Opencart.
No lugar de Avise-me e Encomendar, coloque o texto que deseja que apareça nos botões para cada caso. Este módulo desativa a função comprar e quando clica no botão abre a página de contato já com o nome do produto preenchido.

O código completo fica assim (para o arquivo popular.tpl, deve-se realizar a modificação em todos os arquivos que deseja aplicá-la):
Código: Selecionar todos
<file name="catalog/view/theme/*/template/module/popular.tpl">
    <operation>
      <search position="replace"><![CDATA[<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />]]></search>
      <add><![CDATA[
        <?php
        if ($product['quantity']>0) echo "<input type='button' value='$button_cart' onclick='addToCart($product[product_id]);' class='button' />";
        else if ($product['stock']=='Desculpe-nos, produto esgotado') echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Avise-me</a>";
        else echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Encomendar</a>";
        ?>
      ]]></add>
    </operation>
  </file>
Testado em Opencart 1.5.5.1
Site: http://www.tribodaxita.com.br
Espero ter ajudado.
Aqui funcionou somente na página de busca.
Se você busca o produto "x", ele aparece como fora de estoque. Mas se for ver na categoria dele, aparece normal, com opção de compra :/