VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Carrinho

Cupons no carrinho

Valida e grava um cupom (ou voucher) no carrinho, e remove um ou todos os cupons gravados.

Um cupom é um código que o comprador digita para ganhar desconto (percentual, valor fixo, frete grátis ou "leve X pague Y"). Um voucher é um código avulso emitido pelo seller ou pela loja. Estas duas rotas tratam os dois do mesmo jeito: o comprador digita o código, a API confere se ele vale para este carrinho e o grava no carrinho.

Gravar o cupom não muda os totais do carrinho. O desconto aparece quando você chama Calcular o carrinho, que lê os cupons gravados. No checkout o cupom segue para a sessão de compra; veja Cupom, vale-presente e pontos.

Aplicar um cupom

POST/api/v1/storefront/cart/couponAutenticada

Aplica um cupom ao carrinho

A API procura o código entre as promoções com cupom e, se não encontrar, entre os vouchers. A validação usa o carrinho atual: valor mínimo, limite de uso por cliente, validade, grupos de cliente, e produtos, categorias ou sellers exigidos. Se o cupom não pode gerar desconto para este carrinho, a resposta é um erro com o motivo, e nada é gravado.

Um cupom válido é acrescentado à lista de cupons do carrinho (repetir o mesmo código não duplica). Quantos cupons realmente somam desconto depende da configuração da loja (use_single_coupon) e da regra de empilhamento de cada promoção.

Cabeçalhos

Authorizationstring
Bearer <token> do cliente logado. Com token, o limite de uso por cliente e os grupos de cliente são conferidos.
X-Session-IDstring
Identificador do visitante. Obrigatório sem token.

Corpo da requisição

codestringobrigatório
O código digitado. Maiúsculas e minúsculas não importam; o código é gravado em maiúsculas.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/storefront/cart/coupon" \
  -H "X-Session-ID: $SESSION_ID" \
  -H "Content-Type: application/json" \
  -d '{
  "code": "BEMVINDO10"
}'

Resposta

200Cupom aplicado
json
{
  "code": "BEMVINDO10",
  "coupon_code": "BEMVINDO10",
  "valid": true,
  "message": "coupon applied",
  "discount": 2300
}

Campos da resposta

codestring
O código como o comprador digitou.
coupon_codestring
O código normalizado (maiúsculas, sem espaços nas pontas), como ficou gravado.
validboolean
Sempre true numa resposta 200.
messagestring
Sempre coupon applied. Texto fixo em inglês: não o exiba ao comprador.
discountinteger
Desconto que o cupom dá hoje a este carrinho, em centavos. Pode mudar quando o carrinho muda.

Remover cupons

DELETE/api/v1/storefront/cart/couponAutenticada

Remove um ou todos os cupons do carrinho

Tira cupons gravados no carrinho. Com ?code=, remove só aquele código; sem o parâmetro, remove todos. Remover um código que não está no carrinho não é erro. A rota exige o módulo de promoções ligado.

Parâmetros de consulta

codestring
Código a remover. Comparação sem diferenciar maiúsculas. Omitido: remove todos os cupons do carrinho.

Cabeçalhos

Authorizationstring
Bearer <token> do cliente logado.
X-Session-IDstring
Identificador do visitante. Obrigatório sem token.
bash
curl -X DELETE "$BASE_URL/api/v1/storefront/cart/coupon?code=BEMVINDO10" \
  -H "X-Session-ID: $SESSION_ID"
200Cupom removido
json
{ "message": "coupon removed" }

Erros

StatusQuandoCorpo
400Sem token e sem X-Session-ID{"error":"session_id or authentication required"}
400Corpo que não é JSON{"error":"invalid request body"}
400code vazio{"error":"coupon code is required"}
403A loja desligou cupons{"error":"feature_not_available","feature":"coupons","detail":"switched off for this store"}
403Módulo de promoções desligado (cupom da loja toda, ou DELETE){"error":"module_disabled","module":"promotions"}
422O código não existe, não está ativo ou não vale para este carrinho{"error":"cupom não encontrado ou inativo"}
500Falha interna ao validar ou gravar{"error":"failed to validate coupon","detail":"..."}

No 422, a mensagem em error é o motivo exato e vem em português, escrita para o comprador. Exemplos reais: cupom não encontrado ou inativo, esta promoção expirou, valor mínimo do carrinho: R$ 200,00 (faltam R$ 50,00), você já utilizou este cupom 1 vez(es), nenhum item do carrinho corresponde aos produtos exigidos por este cupom. Mostre a mensagem como veio.

Esvaziar o carrinho não remove o cupom

Esvaziar o carrinho deixa os códigos de cupom gravados. Se o comprador voltar a encher o carrinho, o cupom volta a ser considerado no cálculo. Para recomeçar do zero, chame DELETE /cart/coupon sem parâmetros.

Cupom da loja toda e cupom de seller

O cupom de um seller vale mesmo se a loja não usa o módulo de promoções; já o cupom da loja toda (sem seller) exige o módulo ligado, e sem ele a resposta é 403 module_disabled.

Veja também

  • Calcular o carrinho
  • Cupom no checkout
  • Cupons automáticos do cliente
Anterior
Calcular o carrinho
Próxima
Unir carrinhos e comprar de novo
Nesta página
  • Aplicar um cupom
  • Exemplo de requisição
  • Resposta
  • Remover cupons
  • Erros
  • Veja também