Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Suporte para extensões de Formas de Pagamento
#10292
Olá!
Queria saber se tem como alguém me auxiliar no seguinte:
Eu preciso colocar uma taxa de 5% em todas as compras feitas com PagSeguro e Paypal, alguém sabe como faz? Tenho que entregar essa loja amanhã e só falta isso!

Desde já grata!
Editado pela última vez por leminarelli em 13 Out 2011, 01:44, em um total de 2 vezes.
#10303
Olá,

Para o PagSeguro se você estiver utilizando a versão 1.0.5.2 da Visie os códigos estão em catalog/controller/payment/pagseguro.php

Localize:
Código: Selecionar todos
            foreach ($cart as $item) {
                $produtos[] = array(
                    'id'         => $item['product_id'],
                    'descricao'  => $item['name'],
                    'quantidade' => $item['quantity'],
                    'valor'      => $item['total'] / $item['quantity'],
                    'frete'      => 0,
                );
            }
E substitua por:
Código: Selecionar todos
        foreach ($cart as $item) {
           $unitario        = $item['total'] / $item['quantity'];
           $percentual    = ($unitario * 5) / 100;
           $totalunitario = $unitario + $percentual;
           $produtos[] = array(
                'id'              => $item['product_id'],
                'descricao'   => $item['name'],
                'quantidade' => $item['quantity'],
                'valor'          => $totalunitario,
                'frete'          => 0,
            );
        }
Para o Paypal Standard, os códigos estão em catalog/controller/payment/pp_standard.php

Localize:
Código: Selecionar todos
			foreach ($this->cart->getProducts() as $product) {
				$option_data = array();
	
				foreach ($product['option'] as $option) {
					$option_data[] = array(
						'name'  => $option['name'],
						'value' => $option['option_value']
					);
				}
				
				$this->data['products'][] = array(
					'name'     => $product['name'],
					'model'    => $product['model'],
					'price'    => $this->currency->format($product['price'], $currency, false, false),
					'quantity' => $product['quantity'],
					'option'   => $option_data,
					'weight'   => $product['weight']
				);
			}
E substitua por:
Código: Selecionar todos
			foreach ($this->cart->getProducts() as $product) {
				$option_data = array();
	
				foreach ($product['option'] as $option) {
					$option_data[] = array(
						'name'  => $option['name'],
						'value' => $option['option_value']
					);
				}
				
           $percentual = ($product['price'] * 5) / 100;
           $unitario = $product['price'] + $percentual;
                                
				$this->data['products'][] = array(
					'name'     => $product['name'],
					'model'    => $product['model'],
					'price'    => $this->currency->format($unitario, $currency, false, false),
					'quantity' => $product['quantity'],
					'option'   => $option_data,
					'weight'   => $product['weight']
				);
			}
O que você faz nestas mudanças é acrescentar 5% em cima do valor de cada produto, veja se resolve.

Espero ter ajudado :D
#10304
Olá!

Muitoooooooooooooooooooooooooooooooooooooo obrigada! Deu super certo aqui!!

No caso do PagSeguro eu coloquei:

Código: Selecionar todos
foreach ($cart as $item) {
           $unitario        = $item['total'] / $item['quantity'];
           $totalunitario = ($unitario * 105) / 100;
           $produtos[] = array(
                'id'              => $item['product_id'],
                'descricao'   => $item['name'],
                'quantidade' => $item['quantity'],
                'valor'          => $totalunitario,
                'frete'          => 0,
            );
        }

Não sei de onde eu tirei 105, mas eu sei que deu certo no resultado final kkkk
Agora no Paypal deu certíssimo o código que você me enviou!

Muito obrigada novamente!

Beijos. ;*
#20672
Boa tarde.

Tenho o OpenCart instalado (1.5.1.3) e fiz alteração para adicionar os valores das taxas de paypal e pagseguro (conforme este tópico). Até o presente momento, testei apenas o pagseguro, que está funcionando, mas apresenta o seguinte problema:

Em nenhum momento no Opencart apresenta a informação para o cliente de que haverá uma adição de valores devido as taxas do PagSeguro. Tanto no fechamento do pedido, quanto no e-mail enviado pelo sistema o valor é um, mas no pagseguro o valor é outro (com a inclusão das taxas), aparentando que houve um erro da loja.

O que devo alterar (quais arquivos) para que apareça para o cliente que o valor será modificado devido à inclusão das taxas? Qual a melhor maneira para fazer isto?

Agradeço qualquer sugestão.

Estou testando incluir no arquivo catalog -> language -> portuguese-br -> payment -> pagseguro.php , na variável $_['text_title'] a informação sobre as taxas. Se ficar de forma aceitável, vou testar o mesmo com o paypal.
Editado pela última vez por lucianopoa em 24 Abr 2012, 17:44, em um total de 1 vez.
#20683
A inclusão das informações sobre as taxas na variável $_['text_title'] no arquivo catalog -> language -> portuguese-br -> payment -> pagseguro.php, resolveu parcialmente o problema, pois adicionou na opção forma de pagamento a informação, entretanto, gostaria que a adição da taxa aparecesse no valor final da compra. Além disso, acredito que o correto seria a adição das taxas no valor final, após a inclusão do frete (apesar de que na entrega via correios isto possa ser contornado adicionando uma porcentagem no valor do cálculo dos correios).
#31248
Consegui criar um módulo para isso, a partir de um módulo para desconto à vista, feito por um membro deste fórum (e distribuído gratuitamente). Foi só duplicar o módulo, inverter a lógica do cálculo da finalização do pagamento e substituir os arquivos e variaveis "avista" por "acrescimo".

Gente preciso de ajuda urgente. Na migraç&a[…]

Caro @reds , muito obrigado pela resposta.

PHP 8+ incompatibilidade

Toda tradução para a versão 3[…]

Ola @alex3257 Se você precisa apenas ver […]