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

Correção no caso de produtos configurables
 
farnetani
Jr. Member
 
Total Posts:  10
Joined:  2008-10-25
 

Pessoal...que sirva de contribuição para alguns:

Utilizando o modulo do pagseguro aqui do forum existe um problema
quando se utiliza produtos configuráveis, visto que quando o magento
passa o array de produtos para o pagseguro do uol ele passa duplamente,
ou seja, o produto configurable e o produto associado com os atributos.
O jeito que fiz para corrigir este problema foi deixar o preço dos produtos
simple zerados e substitui o código do módulo (Standard.php) por:

if ($items{
            $i 
1;
            foreach(
$items as $item{
            
if  ((($item->getBaseCalculationPrice() - $item->getBaseDiscountAmount())*100)>0{
                    $sArr 
array_merge($sArr, array(
                        
'item_descr_'.$i   => $item->getName(),
                        
'item_id_'.$i      => $item->getSku(),
                        
'item_quant_'.$i   => $item->getQty(),
                        
'item_valor_'.$i   => ($item->getBaseCalculationPrice() - $item->getBaseDiscountAmount())*100,
                    ));

            if (
$this->getConfigData('calculo_frete') == 1{
                
//para o PagSeguro calcular o frete, tem que passar via Post o peso arredondado, senão dá erro
                
if ($this->getConfigData('medida_peso') == 'kg'{
                    $item_peso 
round($item->getWeight() * 1000);    
                
}
                
else {
                    $item_peso 
round($item->getWeight());
                
}
                
                        $sArr 
array_merge($sArr, array(            
                    
'item_peso_'.$i    => $item_peso,
                    
'item_frete_'.$i    => 0,
                ));
            
}

                    
if($item->getBaseTaxAmount()>0){
                        $sArr 
array_merge($sArr, array(
                        
'tax_'.$i      => sprintf('%.2f',$item->getBaseTaxAmount()),
                        ));
                    
}
                    $i
++;
            
}
            }
        }

Acrescentei a linha:

if  ((($item->getBaseCalculationPrice() - $item->getBaseDiscountAmount())*100)>0{

Que verificará no caso se o produto tem preço...caso nao tenha ele não adiciona no array
do pagseguro do uol.

Espero poder ajudar os mesmos que tiverem este problema.

Abs,

Arlei F. Farnetani Junior

 
Magento Community Magento Community
Magento Community
Magento Community
 
borgesi
Jr. Member
 
Total Posts:  2
Joined:  2008-11-24
 

Fui um pouquinho mais rápido hehe… mas valeu também wink

http://www.magentocommerce.com/boards/viewreply/85297/

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