Sua primeira requisição
Tutorial ponta a ponta na API legada: autenticar, listar produtos, criar um cliente e criar um pedido.
Neste tutorial você faz o ciclo mínimo de uma integração de vendas: entra na loja, escolhe um produto, cadastra um comprador e registra um pedido para ele. No final, você cancela o pedido e apaga o cliente que criou. Leva poucos minutos e usa só as rotas que quase toda integração precisa.
Antes de começar
Você precisa de:
- A URL base da loja (
$BASE_URL, veja Endereço e ambientes). - O e-mail (
$EMAIL) e a chave de API ($API_KEY) de um usuário administrador da loja (Autenticação). - Um terminal com
curlejq, ou Node.js 18 ou superior, ou Python comrequests.
O fluxo
- Autenticar
Com a chave de API não há login: o par
e-mail:chavevai em cada chamada, em HTTP Basic. Confirme que as credenciais funcionam pedindo uma página de uma lista.Se preferir um token, troque e-mail e senha em
POST /api/v1.0/auth_tokense envieAuthorization: Bearer <token>nas chamadas seguintes (Autenticação). Um401aqui quer dizer e-mail ou chave incorretos. - Listar produtos
Busque um produto pelo nome com o parâmetro
q. A lista é paginada:items_per_pagedefine o tamanho da página e a resposta traz os totais emparams.200Produtos encontradosGuarde o
product_id(UUID). Opriceé uma string decimal:"115.00"é R$ 115,00. Oamounté o estoque. A resposta real tem muitos outros campos; aqui estão só os principais. - Escolher o frete
Um pedido de produto físico precisa de uma forma de envio. Leia o cadastro da loja e guarde o
shipping_idde uma delas.Cada item traz
shipping_id(UUID) eshipping(o nome). A forma de pagamento é um código (slug) definido pela loja, comopix,boletooupagamento-na-entrega; use um que exista na sua loja. - Criar um cliente
POST /api/v1.0/userscadastra o comprador.emaileuser_typesão obrigatórios; informe tambémfirstname. Comuser_typeigual aC, ele é um comprador (e não um administrador).201Cliente criadoGuarde o
user_id(UUID). Oprofile_idé igual a ele. Sempassword, a plataforma gera uma senha aleatória e o cliente define a dele pelo fluxo "esqueci a senha". Se o e-mail já existir, a resposta é400. - Criar o pedido
Junte tudo: o cliente, os itens, o endereço de entrega, a forma de envio e a forma de pagamento. O preço vem do catálogo, não do seu corpo.
201Pedido criado (resumo)O pedido nasce com
statusO(pendente). Os valores são strings decimais e otimestampé Unix. O frete é recalculado pela plataforma: R$ 115,00 de produto mais R$ 5,00 de frete dão"120.00". Para um produto físico, a forma de envio emshipping_idsé obrigatória; sem ela a resposta é400comshipping_service_unavailable: a shipping method is required for physical products, e uma forma de envio que não atende o produto ou o CEP responde400comshipping_service_unavailable: selected shipping method/service is unavailable. Guarde oorder_idagora: a API não tem idempotência, e repetir oPOSTcria outro pedido. Todos os campos estão em Criar pedido.
Parabéns: você autenticou, leu o catálogo e gravou um cliente e um pedido. Para o que fazer a seguir com o pedido (alterar status, criar remessa, cancelar), veja Pedidos.
Limpeza
Nesta API, DELETE num pedido cancela o pedido: o registro continua existindo com o status I (cancelado) e o estoque volta. Um usuário, por sua vez, é removido de verdade. Cancele o pedido antes de apagar o cliente.
As duas respostas são 204, sem corpo. As variações de cancelamento estão em Cancelar e excluir.
Erros comuns neste fluxo
400com o nome do campo na mensagem (por exemplouser_id is required): o corpo veio sem um campo obrigatório.401 Invalid credentials: e-mail ou chave incorretos, ou a chave foi substituída por outra.403 Forbidden: admin scope required: o usuário da chave não é administrador.400no frete: produto físico semshipping_ids, ou com uma forma de envio que não atende o produto.priceaparece como texto: na API legada o dinheiro é uma string decimal, não um número.- Pedido duplicado: o
POSTfoi repetido depois de um timeout; confira antes de criar de novo (Limites e boas práticas).