VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API legada/Referência completa/Promoções, cupons e banners

Cotação de preço em lote

Calcula o preço efetivo de vários produtos, por quantidade, para um cliente B2B.

Em vendas B2B, o preço de um produto muda conforme o cliente e a quantidade (tabela do cliente, faixa de volume). A cotação em lote devolve, numa só chamada, o preço unitário efetivo de uma lista de produtos para um cliente. Use quando um sistema de cotação precisa conferir preços de uma planilha de itens sem chamar produto por produto.

POST/api/v1.0/quotation_batch_matchAutenticada

Obter o preço efetivo de vários produtos

A chamada não grava nada. Um item com erro (produto inexistente, dado inválido) não derruba o lote: ele volta com "matched": false e o motivo.

Corpo da requisição

user_idstring
Id do cliente cujo preço será calculado. Opcional: as regras de preço do cliente e dos grupos dele só entram quando você o informa.
itemsarrayobrigatório

Itens a cotar. Não pode ser vazio.

product_idstringobrigatório
Id do produto (UUID).
quantityintegerobrigatório
Quantidade, maior que zero. A quantidade define a faixa de preço.

Exemplo de requisição

bash
curl -u "$EMAIL:$API_KEY" -X POST "$BASE_URL/api/v1.0/quotation_batch_match" \
  -H "Content-Type: application/json" \
  -d '{"user_id":"c1a2b3d4-1111-4222-8333-944455556666","items":[{"product_id":"d8a6c5e7-8e44-4055-a0e2-49014f5d17f6","quantity":2}]}'

Resposta

200Preços do lote
json
{
  "user_id": "c1a2b3d4-1111-4222-8333-944455556666",
  "matches": [
    { "product_id": "d8a6c5e7-8e44-4055-a0e2-49014f5d17f6", "quantity": 2, "effective_price": "1678.95", "matched": true },
    {
      "product_id": "",
      "quantity": 1,
      "effective_price": "0.00",
      "matched": false,
      "reason": "invalid input: product_id required and quantity > 0"
    }
  ]
}

Campos da resposta

user_idstring
O cliente enviado; vazio se não foi enviado.
matchesarray
Um resultado por item, na mesma ordem da entrada.
matches[].product_idstring
Produto.
matches[].quantityinteger
Quantidade cotada.
matches[].effective_pricestring
Preço unitário efetivo, em decimal com ponto, em reais. "0.00" quando matched é falso.
matches[].matchedboolean
true quando o preço foi calculado.
matches[].reasonstring
Motivo da falha, só quando matched é falso.

Erros

StatusQuandoCorpo
400Corpo que não é JSON{"message":"Invalid JSON body","status":400}
400items ausente ou vazio{"message":"items is required and must be non-empty","status":400}
401Sem credenciais{"message":"Authentication required. Use HTTP Basic with email:api_key or Bearer <jwt>.","status":401}
Confira matched item a item

O status HTTP é 200 mesmo que todos os itens falhem. Percorra matches e trate cada matched: false; o campo reason vem como o servidor o devolve, em inglês.

Veja também

  • Visão geral de promoções
Anterior
Banners promocionais
Próxima
Blocos e idiomas
Nesta página
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também