{"section":"known-issues","requestedLocale":"pt","requestedSlug":"o-carrinho-nao-e-atualizado-no-faststore-se-for-feita-uma-solicitacao-externa-para-atualizar-o-formulario-de-pedido","locale":"pt","slug":"o-carrinho-nao-e-atualizado-no-faststore-se-for-feita-uma-solicitacao-externa-para-atualizar-o-formulario-de-pedido","path":"docs/pt/known-issues/FastStore/o-carrinho-nao-e-atualizado-no-faststore-se-for-feita-uma-solicitacao-externa-para-atualizar-o-formulario-de-pedido.md","branch":"main","content":">ℹ️ Este problema conhecido foi traduzido automaticamente do inglês.\n\n## Sumário\n\nO carrinho FastStore é criado/atualizado por meio do _ValidateCartMutation_. Se ocorrer uma solicitação externa que atualize/complemente/enriqueça o carrinho, como `POST /attachments/marketingData`, o carrinho perde sua referência e não é 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 do carrinho que o cliente armazenou no navegador. Quando isso acontece, a primeira solicitação _validateCartMutation_ é ignorada (por exemplo, o cliente adicionando 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 v2 quanto na v3 do pacote `@faststore/api`.\n\n## Simulação\n\nVocê pode validar esse comportamento fazendo as seguintes solicitações:\n\n1. Adicione um produto ao carrinho por meio de `POST ValidateCartMutation`; 2. Adicione dados de marketing por meio de `POST api/checkout/pub/orderForm/{{id}}/attachments/marketingData`; 3. Adicione outro produto ao carrinho por meio de `POST ValidateCartMutation`. Quando você adicionar o segundo item ao carrinho, ele não será adicionado. Será necessário adicioná-lo novamente.\n\nPS: É importante observar que o `marketingData` é apenas um exemplo; esse KI pode ocorrer com qualquer solicitação externa que possa ser feita para atualizar o orderForm.\n\n## Workaround\n\nApós cada solicitação que atualiza 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:\n\n    await axios.post('/api/marketingdata', payload)// atualizar o armazenamento do carrinho const updatedCart = cartStore.read()cartStore.set(updatedCart)Isso garantirá que o carrinho esteja atualizado para que, quando o cliente adicionar mais produtos, o carrinho tenha informações atualizadas. %0A"}