Problemas com a API da VTEX

Opa! Bom dia, boa tarde, boa noite a todos.

A história é longa, mas vou por partes. O objetivo final é fazer um minicart como esse da https://www.lupo.com.br/.

Em andamento do trabalho, vi que o minicart é um controle da VTEX, o vtex.cmc:AmountItemsInCart/. No caso quando você clica em adicionar o produto no carrinho ou em comprar o vtex.cmc:AmountItemsInCart/ armazena todas essas infos como: Total de produtos, Número de Itens, Total de Kits e Valor total. Até aí ok! O problema é que para que ele atualize em tempo real você tem que utilizar a API da VTEX para que quando você clique em “comprar” ele atualizar em tempo real as infos e não só quando você atualizar a página.

Então… Nas minhas pesquisas vi que a VTEX já vem com um código nativo de minicart e que muita gente monta essa programação utilizando a VTEX.js. Por motivos de performance não posso utilizar a biblioteca VTEX.js. Então optei em utilizar a API nativa mesmo da VTEX. Então vi que a API responsável por essa questão é a API de Checkout (Checkout API - Overview).

A partir daí que as coisas começaram a dar errado. Fui tentar fazer um teste rápido fazendo uma requisição Do OrderForm Simulation (OrderForm) e aí vi que precisava de autenticação. Fui e fiz todo o processo para ter a appKey e appToken conforme tutorial(Authentication). Porém quando eu tento fazer a requisição dá erro do mesmo jeito. Sempre dá algum erro como 400, 403 e etc…

Já tentei mudar o “vtexcommercestable” para “myvetx” ou “vtexlocal” mas continua dando erro. Já tentei fazer por fora utilizando o VTEX Speed mas dá erro de CORS.

Simplesmente não sei mais o que fazer já que uma requisição simples no próprio sistema deles está dando erro.

Alguém tem alguma luz de como posso resolver isso? Eu só queria fazer uma API para quando a pessoa clicar em comprar atualizar o vtex.cmc:AmountItemsInCart/ em tempo real.

Como ninguém se propôs a responder e eu já descobri como resolver, vou deixar por escrito aqui a resolução do problema para quem quiser saber.

Quando estava fazendo a requisição em OrderForm e não estava dando certo é pq no body não estava pondo todos os dados corretamente. Na Array Item tem que ter o sku id, quantidade e número do seller. Depois que preenchi tudinho e autentiquei com o appKey e appToken deu certo.

A intenção inicial era fazer requisições para atualização do controle vtex.cmc:AmountItemsInCart/ e quando levei a mesma requisição do OrderForm para meu ambiente de desenvolvimento no VTEX SPEED estava dando erro de CORS e é um problema simples de resolver que abrindo um ticket com mais de 25 posts não souberam me explicar.

https://{accountName}.{environment}.com.br/api/checkout/pub/orderforms/simulation

Em OrderForm ele diz para você por em const url a seguinte url https://{accountName}.{environment}.com.br/api/checkout/pub/orderforms/simulation, só que se você estiver trabalhando em VTEX SPEED não precisa por https://{accountName}.{environment}.com.br, só precisa por /api/checkout/pub/orderforms/simulation. Tão pouco precisa por no header a appKey e appToken.

Enfim… Explicado algo que deveria ser simples e que a VTEX complica e o suporte não tem respostas.

1 Like

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.