Marketplace

Como embarcadores, transportadoras e motoristas se conectam no FreteFlow.

Visibilidade do frete

Um frete pode ser publicado em três modos:

  • Público — aparece na vitrine pública /fretes (acesso sem login) e qualquer transportadora ativa pode ofertar pelo app.
  • Rede / privado — apenas transportadoras parceiras enxergam dentro do app; não vai para a vitrine pública.
  • Direto — atribuído a uma transportadora sem leilão.

Vitrine pública

Toda carga publicada com visibilidade público recebe automaticamente um public_slug de 8 caracteres e fica acessível em duas rotas sem login:

  • /fretes — listagem com filtros (UF origem/destino, tipo de veículo, busca).
  • /f/:slug — página de detalhe da carga, otimizada para SEO e compartilhamento por WhatsApp.

No detalhe interno do frete (logado), o embarcador vê o bloco Compartilhar carga com o link público pronto para copiar ou enviar pelo WhatsApp — visível somente quando o frete está publicado e com visibilidade público.

Leads de motoristas não cadastrados

Na página pública /f/:slug, motoristas sem conta podem demonstrar interesse via formulário curto (nome, WhatsApp, CPF e placa opcionais). Cada envio cria um lead vinculado ao frete e à empresa embarcadora.

Anti-abuso

O endpoint público aplica honeypot, validação Zod e rate-limit de 5 envios por minuto por IP.

Os leads chegam para o embarcador na aba Marketplace → Leads recebidos, com badge no menu lateral indicando quantos estão como novo. O embarcador pode falar pelo WhatsApp e mover o status entre novo → contatado → convertido / descartado.

Jornada da oferta (carrier)

Transportadoras logadas usam /marketplace com filtros avançados (UF, veículo, faixa de preço, data de coleta). Cada oferta enviada é acompanhada por um stepper visual:

text
[1 Enviada] → [2 Em análise] → [3 Aceita / Recusada] → [4 Embarcar]

Estados terminais (recusada, cancelada, expirada) são marcados em vermelho no passo de decisão. Em aceita, o passo final acompanha o status do frete (em_transito, entregue).

Expiração

Ofertas têm validade configurável (padrão 24h). Após expirar, são marcadas como vencidas e não podem mais ser aceitas — mas continuam visíveis no histórico para auditoria.

Score e ranking

Ofertas são ordenadas por uma combinação de valor, score da transportadora e tempo estimado de coleta. Veja como o score é calculado.

Eventos disparados

  • offer.received, offer.accepted, offer.rejected — ciclo de ofertas.
  • marketplace.lead.created — novo lead capturado pela vitrine pública. Veja catálogo de eventos.