Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Dica para ter outras opções de disponibilidade…
 
DaKe
Member
 
Avatar
Total Posts:  41
Joined:  2008-04-01
São Paulo - Brazil
 

Oi galera tranquilo?

Vasculhando o Google a procura de como ter outras disponibilidades no Magento além de “Em estoque” e “Esgostado”.
Não achei nada pronto ou pelo menos fácil. Mas cheguei a uma teoria que pra um desenvolvedor avançado em Magento deve ser
2 palito implementar e testar. Seguinte:

- Fazer um hack no “view” do produto onde mostra a tal disponibilidade com as condições:
. Se o estoque do produto é igual ou maior que 1 e diferente de “7070” , mostrar “Em estoque”.
. Se o estoque do produto é igual a 0, mostrar “Esgotado”
. Se o estoque do produto é “7070”, mostrar “2 dias úteis”.

Usando essa regra, poderia manter o controle do estoque normalmente (a grande maioria das dicas no Google pedem pra não usar o estoque), sem grandes modificações, somente interpretando a quantidade em estoque, e usar o valor da própria quantidade pra mostrar outras opções de disponibilidade.
No exemplo, se eu setar um produto no inventário com 7070 ele será mostrado como “2 dias úteis”.

A parte teórica parece funcionar, mas não sou desenvolvedor. Alguem se habilita a testar tal funcionalidade e postar pra todos?

Agradeço pela atenção!

 
Magento Community Magento Community
Magento Community
Magento Community
 
Awa_Solucoes
Sr. Member
 
Avatar
Total Posts:  215
Joined:  2009-04-18
Londrina, PR - Brazil
 

Colega, não precisa ser um desenvolvedor avançado para isso, muito menos fazer “hacks” que podem prejudicar a segurança do magento.
Pelo que entendi, vc quer uma função pelo qual vc decida qual o prazo para entrega de determinados produto, certo??
se for isso, basta criar novos atributos no backend, e colocar as opções tipo 1 dia util, 3 dias uteis e tal.
Qualquer coisa to ai!!!

 
Magento Community Magento Community
Magento Community
Magento Community
 
DaKe
Member
 
Avatar
Total Posts:  41
Joined:  2008-04-01
São Paulo - Brazil
 

Mas dessa forma o mesmo será apresentado na descrição como informação adicional certo?
E continuará mostrando a disponibilidade com 2 opções.

O que eu quero é mostrar no mesmo local de disponibilidade outras opções, alias esse é o normal em todas as plataformas.

Teria que mexer no código mesmo…

 
Magento Community Magento Community
Magento Community
Magento Community
 
DaKe
Member
 
Avatar
Total Posts:  41
Joined:  2008-04-01
São Paulo - Brazil
 

Pra deixar registrado, consegui suprir minha necessidade utilizando o código postado no
seguinte tópico:

http://www.magentocommerce.com/boards/viewthread/53751/

Funcionou direitinho, podendo utilizar o controle de estoque, só tendo que mudar pra fora de estoque manualmente quando
o mesmo esgotar, mas não sendo um grande problema, pois o produto esgotado não é possível comprar.

Abs

 
Magento Community Magento Community
Magento Community
Magento Community
 
andresionek91
Jr. Member
 
Total Posts:  1
Joined:  2011-06-18
 

Opa!

Depois de vasculhar um monte a net encontrei uma forma de integrar a opção de disponibilidade com o módulo de frete fornecido pela NOIX.  (somar disponibilidade + prazo de entrega dos correios).

Ele sempre pegará o maior prazo de entrega do carrinho, ou seja, se vc tem produtos com disponibilidades diferentes ele pegará a maior.

1 - Crie um atributo tipo dropdown com nome disponibilidade e escopo Global
1.1 - Sempre crie rótulos com valores numéricos. Use 0 para disponibilidade imediata.

2 - Abra o arquivo app\code\community\Noix\Correios\Model\Carrier.php

3 - Localize o código

$mageFilename 'app/Mage.php';
require_once 
$mageFilename;

umask(0);

4 - Insira logo abaixo

Mage::app();

$estoque 0;
$output 0;
       
$items Mage::getModel('checkout/session')->getQuote()->getAllItems();

        foreach(
$items as $item)
        
{
            
if ($item->getProduct() instanceof Mage_Catalog_Model_Product)
            
{
                $estoque 
Mage::getModel('catalog/product')->load($item->getProduct()->getId())->getAttributeText('disponibilidade');
       if ( 
$estoque $output){
$output 
$estoque;
    
}    
        } 
        }

5 - Localize

if($this->mostrarPrazoEntrega()){
                             $methodTitle 
.= sprintf($this->getTextoPrazoEntrega(), (int)$servico->PrazoEntrega + (int)$this->getAcrescimoPrazoEntrega());
                         
}

6 - Troque por

if($this->mostrarPrazoEntrega()){
                             $methodTitle 
.= sprintf($this->getTextoPrazoEntrega(), $output + (int)$servico->PrazoEntrega + (int)$this->getAcrescimoPrazoEntrega());
                         
}

Com isso o prazo de entrega dos correios será somado à disponibilidade.

7 - Para exibir a informação no frontend corretamente vá até a pasta app\design\frontend\default\default\template\catalog\product\view\type

8 - Abra um tipo de produto que você tem cadastrado na loja, no meu caso simple.phtml e configurable.phtml.

9 - Faça um backup do arquivo.

10 - Troque todo o código por

<?php $_product $this->getProduct() ?>
<?php 
if($_product->isSaleable()): ?>
   
<class="availability in-stock"><?php echo $this->__('Disponibilidade: ')?> <span><?php if($_product->getAttributeText('disponibilidade') == 0): ?>
   <?php 
echo $this->__('Imediata')?>
  <?php 
else: ?>
  <?php 
echo $_product->getAttributeText('disponibilidade'?><?php echo $this->__(' Dias')?></span></p
  
<?php endif; ?>
  
<!--  <class="availability"><?php echo $this->__('Availability: In stock.'?></p> -->
<?php else: ?>
    
<class="availability"><?php echo $this->__('Availability: Out of stock.'?></p>
<?php endif; ?>

<?php 
echo $this->getPriceHtml($_product?>

Pronto! Agora quando a disponibilidade for igual a 0 será exibido Disponibilidade: Imediata e quando a disponibilidade for igual a xx será exibido Disponibilidade: xx dias.

Espero ter ajudado!

Abraços,

André

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top