Closed wisley7l closed 1 year ago
Só pra confirmar, chegando webhook de produto estamos:
- [x] (1) Verificando se há alguma assinatura ativa com o produto;
https://github.com/ecomplus/app-galaxpay/blob/4a829984f2f57796227fef4bf247b7b521e8e873/functions/routes/ecom/webhook.js#L243 Aqui buscamos os pedidos não cancelado que contenha o produto, que são do app_galaxpay e que são do tipo recorrencia. Em seguida confirma na API do galaxpay se os pedidos encontrados estão realmente ativos (ou seja que são assinaturas ativas)
- [x] (2) Lendo o produto atualizado;
- [x] (3) Percorrendo cada pedido e verificando o item (produto ou variação) pelo SKU no pedido;
https://github.com/ecomplus/app-galaxpay/blob/4a829984f2f57796227fef4bf247b7b521e8e873/functions/routes/ecom/webhook.js#L255 Aqui percorremos os pedidos (assinaturas ativas no galaxpay)
https://github.com/ecomplus/app-galaxpay/blob/4a829984f2f57796227fef4bf247b7b521e8e873/functions/routes/ecom/webhook.js#L264 Percorremos cada item do pedido e verificamos se tem variação
- [x] (4) Se a quantidade do item é menor que o estoque alteramos a quantidade pro próximo pedido da assinatura, evitando zerar (apenas se o estoque for 0);
checkItemsAndRecalculeteOrder(order.amount, order.items, docSubscription.plan, newItem)
Essa função receberá como parametro o newItem que irá conter quantidade e preço, no qual fará as alterações necessárias no item.
- [x] (5) Se o preço do produto for diferente alteramos o preço pro próximo pedido da assinatura;
- [x] (6) Se não houver alteração nenhuma a assinatura não é atualizada no Galaxpay;
Se os valores da assinatura for diferente do novo valor calculado os items passam a ser salvos no firestore da assinatura, para verificação, antes de criar o novo pedido e além disso o novo valor é alterado no Galaxpay para criação de novas cobrança
- [x] (7) O pedido original (assinatura) nunca é atualizado na plataforma;
- [x] (8) Os próximos pedidos salvos na plataforma têm quantidades/preços atualizados, não necessariamente iguais aos itens do pedido original; Antes de criar um novo pedido é feito a verificação, para que o novo pedido seja criado com produtos com valores e/ou quantidade corretas.
BREAKING CHANGE: updating app authentication scope and procedures
fixes #58