Closed WidecommerceDev closed 5 years ago
Oi, @WidecommerceDev . Tudo bom? Obrigado pelo detalhamento no bug e na investigação.
Qual versão do módulo está usando? Pergunto isso, porque há muito tempo eu tratei essa questão dos retornos duplicados do PagSeguro, de forma que o módulo não aceita um retorno em menos de 60 segundos, como pode ser visto em \RicardoMartins_PagSeguro_NotificationController::indexAction e endereçado no #215 ).
Outra coisa que me ocorreu vendo a forma como implementei é o cache. Você está com os caches ativos? Vi que fiz essa implementação com um cache chamado _pagseguronotification. Mas se os caches estiverem desabilitados, será que essa abordagem funciona? Não pensei nisso.
Em um teste rápido local, mesmo com os caches desabilitados, funcionou.
martins@martinsmac.lan:~/www/pagseguro-exemplo$ curl -X POST http://pagseguro-exemplo.local.com.br/pseguro/notification -d "notificationCode=AAAA"
//erro grande em html.. nao vou colar aqui
martins@martinsmac.lan:~/www/pagseguro-exemplo$ curl -X POST http://pagseguro-exemplo.local.com.br/pseguro/notification -d "notificationCode=AAAA"
Notificação já enviada a menos de 1 minuto.
martins@martinsmac.lan:~/www/pagseguro-exemplo$
@WidecommerceDev fique à vontade para reabrir o ticket com mais informações. Obrigado pela ajuda e parceria de sempre.
Olá, recentemente estamos enfrentando um problema com estoque de produtos.
Vamos supor que um produto tendo em estoque 10 unidades é vendido e ele tem seu estoque abaixado para -1 ficando com 9 unidades. Até aqui tudo bem.
Porém quando o pedido é cancelado, automaticamente a quantidade do produto vendido volta em estoque somando +1 nesse caso e voltando a ter 10 unidades o meu produto.
Porém o que está acontecendo é que esta sendo retornado mais de uma unidade ao estoque, ao invés de voltar 1 está voltando 2 ficando com quantidade total de 11.
Lembrando que esses valores são só exemplos, e a quantidade voltada ao estoque depende da quantidade comprada.
Certo, e o que isso tem haver com o método de pagamento PagSeguro?
Em alguns pedidos a solicitação de pagamento cancelado está chegando na minha plataforma de duas a mais vezes sequenciais, sem um espaço de tempo... Coisa de 2 segundos ou até menos de diferença... Com isso a primeira requisição não chega a salvar e já vem outra logo em seguida... Com isso o Magento soma as quantidades para voltar em estoque das duas requisições e salva o valor de estoque errado.
Para resolver isso creio que seja bem simples... Ao invés de utilizar Mage::getModel('sales/order'), utilizem Mage::getSingleton('sales/order'), pois como estamos utilizando o padrão singleton, ele não vai instanciar outro objeto e fazer a confusão dos estoques.
Não sei se consegui ser claro. Se tiverem dúvidas estamos a disposição para batermos um papo.