-
- farnetani

-
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
|