No storefront da CentralCart
Os templates Liquid já consomem estes endpoints. Você os chama diretamente do
navegador quando escreve JavaScript no editor de códigos.
Em uma vitrine própria (headless)
Você constrói o front no seu framework (Next.js, Nuxt, Astro) e usa a CentralCart
apenas como backend de catálogo e pagamento.
Base URL
Identificando a loja
Todo endpoint da Storefront API exige o headerx-store-domain com o domínio da loja.
É ele que diz à API de qual loja você está falando. Não há chave de API envolvida.
sualoja.centralcart.ai) quanto qualquer
domínio próprio já ativo na loja (loja.meusite.com). Se o domínio não resolver para
nenhuma loja, a API responde 404.
O valor é o domínio da loja na CentralCart, não o domínio onde o seu front está
hospedado. Um app Next.js rodando em
minhaloja.vercel.app continua enviando
x-store-domain: sualoja.centralcart.ai.Autenticação
A API se divide em dois grupos. Sem sessão. Loja, catálogo, carrinho, upsells, cupom, checkout e acompanhamento do pedido. Qualquer visitante pode chamá-los: basta ox-store-domain.
Com sessão do comprador. Conta, histórico de pedidos e programa de afiliados. Aqui
entra um access_token obtido pelo login por código de e-mail, enviado em
Authorization: Bearer. Veja
Autenticação do cliente.
Um fluxo de checkout completo
Os endpoints se encaixam nesta ordem:1
Carregue a loja e o catálogo
GET /webstore traz nome, moeda, tema e quais
dados do comprador a loja exige.
GET /webstore/category e
GET /webstore/package montam a vitrine.2
Resolva o carrinho no servidor
POST /webstore/cart devolve os preços
autorizados. O carrinho vive no navegador, então o preço guardado lá não é
confiável. Sempre exiba o total com base nesta resposta.3
Ofereça upsells e aplique o cupom
4
Descubra o que o pagamento exige
GET /webstore/gateway diz quais métodos estão
ativos e quais campos do comprador cada um exige. Combine com
GET /webstore/checkout_fields para os
campos personalizados da loja.5
Crie o pedido
POST /webstore/checkout devolve
checkout_url para redirecionar, ou o código PIX e o QR Code.6
Acompanhe o pagamento
GET /webstore/order_status/{order_id}
para fazer polling na tela do PIX até o status virar APPROVED.Se você tem um backend, prefira o webhook ORDER_APPROVED. Veja
Webhooks.Depois da compra
O checkout não é o fim da vitrine. Com a sessão do comprador em mãos, dois grupos abrem:Conta do comprador
Histórico de pedidos, detalhe com o conteúdo entregue e envio de avaliação.
Afiliados
O comprador vira afiliado, cria links de indicação, acompanha o extrato e pede saque.
?ref= da URL com
GET /webstore/affiliate/ref/{code},
guarde o código pelos dias que ele informar e mande em affiliate_code no checkout.
Preços são sempre resolvidos no servidor
Vale repetir porque é o erro mais comum ao construir uma vitrine própria: nenhum preço enviado pelo cliente é aceito. OPOST /webstore/cart re-resolve o preço de cada item, incluindo ofertas de upsell
amarradas ao produto-gatilho. O POST /webstore/checkout refaz essa mesma resolução por
conta própria, de forma independente. Um valor adulterado no navegador não passa nem na
exibição nem na cobrança.
Por isso o carrinho do seu front deve guardar apenas IDs e quantidades, nunca preços.
Campos personalizados: dois níveis
A CentralCart tem dois tipos de campo personalizado, e eles vão para lugares diferentes no checkout:
Em ambos, a chave é o
name do campo.