elisei / moip-transparente-magento

33 stars 29 forks source link

Checkout com erro de cálculo com promoções sobrepostas / formas de pagamento #102

Closed davirs closed 4 years ago

davirs commented 4 years ago

Não é um erro. O que acontece é que o checkout não atualiza os métodos de envio ao selecionar pagamento. Exemplo: O total do checkout é R$220 Tem uma regra de frete grátis para compras acima R$200 e está selecionado cartão sem desconto. Até aqui tudo OK, frete grátis aplicado, total R$220.

Se selecionar boleto com 10% de desconto, O frete grátis continua aplicado porém o total é R$198. Desta forma o cliente finaliza a compra burlando as regras...

A pergunta é: É possível utilizar uma função/evento pronto do checkout com onchange ao selecionar o radiobutton de uma forma de pagamento? Gostaria da indicação de qual evento é o indicado para não impactar negativamente no checkout

Caso contrário da pra fazer uma função adicional, sem problemas...

Abraço

elisei commented 4 years ago

Fala @davirs

Acredito o cliente vai apenas ver o com o desconto mas na hora que fechar ele é removido...

davirs commented 4 years ago

Pior que não, os pedidos estão passado e clientes estão ganhando frete grátis sem cumprir os requisitos das promoções.. da mesma forma que fica no checkout conforme exemplo acima fica no pedido.

pra fazer um teste rápido aqui eu coloquei o evento onchange="EditAddress(this.value,'shipping')" no radio button dos pagamentos. Funciona pra atualizar o meio de envio, mas dai tem outro problema: Se tiver apena um tipo de frete (exemplo localidades no rio de janeiro que só aceitam SEDEX ) o tipo de pagamento sempre faz ficar o pré-selecionado, exemplo cartão. Você pode selecionar boleto que o tipo de pagamento volta pro cartão

Se tiver PAC e SEDEX o evento funciona perfeitamente, atualiza o frete e as promoções ficam OK

elisei commented 4 years ago

Olá @davirs acho que entendi errado a sua primeira interação, ao que parece você não questiona o valor de desconto do meio de pagamento e sim a aplicação do frete grátis quando a compra atinge 200 reais.

Caso seja isso, não há nada no checkout que possa corrija a falha não está no checkout e sim no que sales rule pode ou não fazer.

A regra de carrinho é aplicada ao subtotal e não ao total. O subtotal não é afetado por promoções (ele sempre será o somatório do valor dos produtos), os descontos e mesmo o valor de envio, bem como impostos caso tenha, são linhas adicionais ao total e afetam somente o resultado final (grand total).

Em resumo sempre que tiver um total do preço dos produtos >= 200 reais qualquer regra para esses cenário será aplicada, tornando ou não a compra inferior a 200 reais.

Você pode testar esse mesmo cenário em no checkout nativo o comportamento será exatamente o mesmo.

davirs commented 4 years ago

Então, eu não entrei em detalhes porque fui direto ao ponto.

Em todas as minhas lojas esse problema de lógica do magento está corrigido, só faz sentido na grande maioria das regras serem calculadas no total geral, no carrinho por exemplo tudo está funcionando 100%.

Então o único problema de fato é apenas atualizar o frete ao selecionar o tipo de pagamento. vou colocar um print de um exemplo real e comum pra ilustrar melhor:

https://prnt.sc/srq9gw

Só um detalhe, imagine de R$25,00 em R$25,00 o tamanho do prejuízo... Não é algo pouco importante..

Obrigado novamente, espero ter explicado bem agora

elisei commented 4 years ago

Olá @davirs

Então no carrinho, sequer existe um método de pagamento, por isso lá você não notará nada de diferente.

Por favor realize o teste do mesmo cenário para o checkout nativo da Magento (sem qualquer alteração).

davirs commented 4 years ago

Ok, mas você está equivocado e vou explicar. Quando entra no checkout, seleciona o tipo de pagamento, em seguida retorna ao carrinho ficará aplicado aquele método de pagamento e da pra testar as regras.

Exemplo Checkout wirecard: teste 1 cartão: cartão selecionado: https://prnt.sc/srrd39 retornando ao carrinho: https://prnt.sc/srrep2

teste 2 boleto com desconto: Selecionado boleto no checkout wirecard: https://prnt.sc/srrfmb retornando ao carrinho: https://prnt.sc/srrgqj

Agora direto ao checkout padrão do magento para testes: https://prnt.sc/srrjft

Como pode ver o resultado é o mesmo

elisei commented 4 years ago

@davirs

Qual é a url da sua loja?

davirs commented 4 years ago

Posso te mandar acesso para base DEV via e-mail?? Caso queira poupar tempo podemos voltar a pergunta inicial que eu resolvo por aqui Novamente obrigado

A pergunta é: É possível utilizar uma função/evento pronto do checkout com onchange ao selecionar o radiobutton de uma forma de pagamento(para atualizar o frete)? Gostaria da indicação de qual evento é o indicado para não impactar negativamente no checkout

elisei commented 4 years ago

Sim é necessário,

Por favor envie para magento@moip.com.br