Fórum OpenCart Brasil

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

Suporte geral sobre problemas técnicos para OpenCart v2.x.
#70947
Bom pessoal.

Quase finalizando uma OC 2.1.0.1 hoje, me deparei com o seguinte problema.

O cliente compra 2 itens, adiciona ao carrinho, escolhe o frete e paga pelo pagseguro. Tudo redondo, funcionando.

O detalhe é que ele paga, recebe o produto, so que toda a vez que loga na conta dele, os mesmo 2 produtos que ele comprou estão lá no carrinho.

O que acontece é que gerou algumas confusões, tipo clientes que compraram na loja e deixaram para pagar depois.
Ao acessar a loja os produtos estavam no carrinho gerando confusão, pois alguns acharam que não compraram o produto, e acabam gerando outro pedido. Tendo um primeiro aguardando o pagamento e o segundo pago.
E mesmo assim depois de comprado e pago o OC acaba deixando sempre gravado os produtos no carrinho.

Minha pergunta é assim mesmo?

O certo não seria ao cliente comprar e finalizar o pedido, os produtos devem ser deletados do carrinho, os produtos devem permanecer ali, somente se o pedido não for finalizado.

Existe alguma maneira de limpar o carrinho após a finalização do pedido.

A forma que encontrei foi em um Qmod do 1.5x, e adaptei na linha do arquivo, system/library/costumer.php

Adicionar a linha:
Código: Selecionar todos
$this->db->query("delete FROM " . DB_PREFIX . "cart WHERE customer_id = '". $customer_query->row['customer_id']."'");
So que toda a vez que o cliente faz o logout exclui os produtos do carrinho, perdendo aquele item de lembrar e salvar os produtos ainda não comprados.

Alguém poderia me ajudar.

Grato
Editado pela última vez por turcorossi em 18 Nov 2016, 13:49, em um total de 2 vezes.
#71045
Resolvido.

O checkout utiliza Ajax.

Adicionei um reset no botão.
Código: Selecionar todos
 $.ajax({
                    url: 'index.php?route=checkout/confirm',
                    dataType: 'html',
                    complete: function() {
                        $('#button-payment-method').button('reset');   /*reset adicionado*/
                    },
                    success: function(html) {
                        $('#collapse-checkout-confirm .panel-body').html(html);

						$('#collapse-checkout-confirm').parent().find('.panel-heading .panel-title').html('<a href="#collapse-checkout-confirm" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle"><?php echo $text_checkout_confirm; ?> <i class="fa fa-caret-down"></i></a>');

						$('a[href=\'#collapse-checkout-confirm\']').trigger('click');
					},
                    error: function(xhr, ajaxOptions, thrownError) {
                        alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
                    }
Assim, o botão não tranca, mas sem assinalar a caixa dos termos, continua exibindo a tela de erro que pede para assinalar a caixa, e o botão so carrega após assinalar.

Obrigado
RPHP gostou disso