Regras de brinde sendo respeitadas apenas ao recarregar
matheusgnreis opened this issue · comments
Descreva o bug
Algumas lojas têm regras escaladas de brinde. Nesse caso, colocam a partir de X o brinde é A, a partir de Y o brinde é B e assim por diante. No entanto, isso está sendo respeitado em parte. Em Como reproduzir colocarei os exemplos.
Exemplo 1, se o cliente já está no carrinho com um brinde para produtos acima de R$ 100,00 e adiciona mais quantidades para ultrapassar R$ 200,00
Exemplo 2, se o cliente já está no carrinho com R$ 200,00 e diminui para R$ 150,00, o carrinho remove o brinde, mas não adiciona o brinde da faixa acima de R$ 100,00.
Como reproduzir
Exemplo 1
- Vá para o carrinho com total do carrinho de R$ 120,00
- O carrinho irá inserir brinde, pois está acima de R$ 100,00
- Adicione mais unidades de um dos produtos para ultrapassar valor de R$ 200,00 que é outra regra de brinde.
- Veja que o carrinho continua com o brinde antigo, não respeitando a nova regra.
Exemplo 2 - Vá para o carrinho com total do carrinho de R$ 200,00
- O carrinho irá inserir brinde, pois está acima de R$ 200,00
- Retire unidades de um dos produtos para diminuir valor e ficar abaixo de R$ 200,00 que é outra regra de brinde.
- Veja que o carrinho retira o brinde, deixando o carrinho sem nenhum brinde, contrapondo a regra acima de R$ 100,00 ganhe brinde A
Se recarregar a página, em ambos os casos mostrará o brinde correto.
Teria como criar essa regra dos brindes na Demo Store?
@Suzei até teria, mas pra? Você pode alterar o Store ID do teste de vocês editando o arquivo @ecomplus/storefront-template/content/settings.json
, já sabem disso?
@leomp12 Não sabíamos não, valeu pelo toque
Conseguiu ai @Suzei e @sameoldcarlos ? Qualquer coisa vocês falam que ajudo a configurar isso..
Queremos uma ajuda aí sim. O problema maior tá sendo reproduzir o bug, já que quando a gente cria a regra, uma de 100 e outra de 200, só a de 200 funciona. Não sei se é algo na regra de brinde da loja, mas não tá rolando
Então, mas a regra funciona assim mesmo. Se você chegar no checkout com valor total acima de 200,00. Ele aplica somente o de 200. O problema é justamente se você já estiver no carrinho com pedido acima de 100,00. Daí, aumentar o valor pelo carrinho e esse valor ultrapassar 200,00, deveria aplicar o brinde em 200 e sair a condição do brinde a 100
Como falamos ontem na call, o bug não parece estar no Storefront, mas no App de descontos e brindes.
Nos testes feitos, eu e @Suzei notamos que a requisição feita no apply_discount vai com todos os campos corretos e atualizados (inclusive o do valor da compra) em todos os casos que reproduzimos. No caso do primeiro brinde, a resposta chega correta, porém ao aumentar o valor da compra até chegar na regra maior, a resposta não acompanha atualização e chega com o brinde antigo.
O cenário que eu descrevi pode ser percebido ao inspecionar o network dessa loja. Nela adicionamos uma regra de brinde de 100 reais (Vaso para orquídeas) e outra de 200 (Boleira Vermelha).
@sameoldcarlos @Suzei na verdade acho que o erro é no Storefront sim, recarregando a página do carrinho com os R$ 200,00 ou mais o brinde maior (Boleira Vermelha) é aplicado, portanto no load da página a request no apply_discounts
é correta e a resposta vem com o brinde esperado.
Quando um item é adicionado no carrinho já aberto (sem reload) a request é feita mas tem alguma(s) coisa errada já que a resposta é com o brinde menor, no exemplo que você deu de cara eu notei que nessa segunda request (na atualização do carrinho) o brinde é enviado entre os itens
, isso está errado já que o desconto não é calculado considerando o produto brinde (note que isso não acontece quando você recarrega a página, só os produtos pagos são enviados no cálculo do desconto).
Estou retirando o produto, o mesmo sai da lista de brinde do carrinho, mas o desconto continua sendo aplicado, não respeitando a regra do mínimo
https://www.loom.com/share/76f091e142c3485192d5e79c4b9b8a2e
Isso é outro bug né...
Esse issue está fechado.
Ah sim, é porque estava na descrição do issue isso ai. Tipo, ele removia o brinde, mas quando aumentava a quantidade, não era re-inserido o brinde, vou abrir outro