Cotações B2B
Pedidos de cotação de clientes empresa, propostas formais com link de aceite e negociação em rodadas.
No comércio B2B (empresa vende para empresa), comprar é raramente um clique: o comprador pede um preço, o seller responde, os dois ajustam e só então o pedido acontece. A plataforma modela isso com a cotação (RFQ, "request for quotation"). Esta área é a visão do administrador sobre essas cotações.
São as rotas do administrador da loja. O cliente pede a cotação pela vitrine e o seller responde pelo painel dele.
Como funciona
status | Significado |
|---|---|
pending | O cliente pediu; o seller ainda não respondeu. |
quoted | O seller respondeu com preços e uma validade (valid_until). |
negotiating | Cliente e seller estão trocando contrapropostas em rodadas. |
accepted | O cliente (ou o decisor, pela proposta formal) aceitou. |
converted | A cotação aceita virou carrinho do cliente. |
rejected | Recusada (pelo cliente, pelo seller ou pelo administrador). |
expired | A validade passou sem decisão. |
Para o decisor da empresa aprovar sem ter conta, o administrador ou o seller gera uma proposta formal: um PDF e um link com chave secreta.
Conceitos-chave
Preço pedido e preço oferecido
Cada item tem requested_price_cents (o que o cliente quer pagar, opcional) e offered_price_cents (o que o seller aceita cobrar), ambos por unidade. O product_price é o preço de tabela, só para comparação.
Rodadas
Na negociação, cada contraproposta é uma rodada numerada. Há um máximo de rodadas por cotação (max_rounds, padrão 5).
Mediação
O administrador pode marcar uma negociação como mediada e deixar uma nota. É uma anotação interna.
Endpoints
| Método | Caminho | Para que serve | Página |
|---|---|---|---|
| GET | /api/v1/admin/quotes | Listar cotações | Cotações |
| GET | /api/v1/admin/quotes/{id} | Consultar uma cotação | Cotações |
| PUT | /api/v1/admin/quotes/{id} | Recusar uma cotação | Cotações |
| POST | /api/v1/admin/quotes/{id}/proposal | Gerar proposta formal | Propostas |
| DELETE | /api/v1/admin/quotes/{id}/proposal | Revogar o link | Propostas |
| GET | /api/v1/admin/quotes/{id}/proposal/events | Trilha de eventos | Propostas |
| GET | /api/v1/admin/rfq/negotiations | Listar negociações | Negociações |
| GET | /api/v1/admin/rfq/negotiations/{id} | Consultar negociação | Negociações |
| PATCH | /api/v1/admin/rfq/negotiations/{id} | Anotar a negociação | Negociações |
Erros comuns
- Tratar o
idcomo UUID. É um inteiro; outro formato responde400. - Esperar que
PUTaceite outros estados. Sórejectedé aceito. - Gerar proposta de uma cotação que não está
quoted. Responde400. - Compartilhar o
tokenou apublic_urlcom a pessoa errada. Quem tem o link aprova ou recusa. Revogue se isso acontecer. - Esperar
404ao recusar uma cotação inexistente. Responde500com a explicação emdetail. - Anotar uma negociação sem conferir o
id. Umidinexistente devolve200comnull.