Menu
Feedback
Comece aqui

Problemas conhecidos

Problemas conhecidos
O carrinho não é atualizado no FastStore se for feita uma solicitação externa para atualizar o formulário de pedido
FastStore
ID: 1127034
Backlog
Publicado em31/10/2024
Última atualização em01/11/2024
2 min de leitura

Sumário

Este problema conhecido foi traduzido automaticamente do inglês.

O carrinho FastStore é criado/atualizado por meio de ValidateCartMutation.

Se ocorrer uma solicitação externa que atualize/complemente/enriqueça o carrinho, como POST /attachments/marketingData, o carrinho perderá sua referência e não será possível adicionar outro produto na primeira tentativa. Chamadas externas que alteram o orderForm podem deixar o carrinho obsoleto, o que significa que os itens no carrinho foram alterados fora do fluxo padrão do cliente na loja e não têm mais o mesmo estado de carrinho que o cliente armazenou no navegador. Quando isso acontece, a primeira solicitação validateCartMutation é ignorada (por exemplo, o cliente adiciona outro produto) e, em seguida, a versão atual do orderForm é retornada, e esse novo produto não é adicionado ao carrinho.

Percebemos que esse comportamento ocorre tanto na versão 2 quanto na versão 3 do pacote @faststore/api.

Simulação

Você pode validar esse comportamento fazendo as seguintes solicitações:

  1. Adicionar um produto ao carrinho por meio de POST ValidateCartMutation;
  2. Adicionar dados de marketing por meio de POST api/checkout/pub/orderForm/U050MGX0CQ3/attachments/marketingData;
  3. Adicionar outro produto ao carrinho por meio de POST ValidateCartMutation.

Quando você adicionar o segundo item ao carrinho, ele não será adicionado. Ele terá de ser adicionado novamente.

Workaround

Após cada solicitação que atualizar o carrinho (etapa 2 no exemplo acima), será necessário recuperar as informações atuais do carrinho e atualizá-las, conforme sugerido pela implementação abaixo:


await axios.post('/api/marketingdata', payload)
// update cart store
const updatedCart = cartStore.read()
cartStore.set(updatedCart)

Isso garantirá que o carrinho esteja atualizado para que, quando o cliente adicionar mais produtos, o carrinho esteja com informações atualizadas.

Contribuidores
1
Photo of the contributor
+ 1 contributors
Isso foi útil?
Sim
Não
Sugerir edições (GitHub)
Contribuidores
1
Photo of the contributor
+ 1 contributors
Nesta página
Ainda tem dúvidas?
Pergunte à comunidade
Encontre soluções e compartilhe ideias na VTEX Community
Junte-se à nossa comunidade
Solicite suporte à VTEX
Receba assistência personalizada com nossos especialistas
Abra um ticket de suporte
GitHubDeveloper PortalComunidadeFeedback