Cupons de desconto

Cupons de desconto

Códigos promocionais que abatem valor de um agendamento. Diferente do cupom de plano (Horatta), esse é o cupom que você emite pros seus próprios clientes — aplicável na comanda do agendamento ou direto no link público de booking.

Criar um cupom

Em Cupons (na sidebar), o formulário lateral cria um cupom novo. Campos:

  • Código — letras, números, hífen ou underscore. Convertido pra MAIÚSCULA. Único por estabelecimento (você pode usar um código que outro tenant também usa).
  • Descrição — texto livre interno (cliente não vê).
  • TipoPercentual (%) de 1 a 100, ou Valor fixo (R$) em reais.
  • Validade (de / até) — opcional. Vazio = sem janela.
  • Limite total de usos — opcional. Quando a contagem atinge, o cupom para de aplicar.
  • Pedido mínimo — valor mínimo do agendamento (antes do desconto) pra liberar o cupom.
  • Restrição de serviços — quando preenchida, o cupom só vale se TODOS os serviços do agendamento estiverem na lista. Vazio = qualquer combinação.

Aplicar pelo painel

Na ficha do agendamento (Agenda > abrir), o card Cupom de desconto tem um campo pra digitar o código e o botão Aplicar. O resumo do total mostra o subtotal riscado, o total com desconto e a economia.

Re-aplicar o mesmo cupom é idempotente. Trocar de cupom estorna o anterior (decrementa o contador) e aplica o novo. Remover volta o agendamento ao subtotal original.

Aplicar no link público

No último passo do booking (/book/seu-slug), o cliente vê o campo Cupom de desconto. Você pode passar o código direto na URL pra deixar mais fácil: /book/seu-slug?cupom=SUMMER10 ou ?coupon=SUMMER10. Cliente pode editar/apagar o campo.

Em reservas em grupo (cliente + acompanhantes), o cupom só se aplica ao agendamento do cliente principal — os acompanhantes pagam o subtotal cheio. É proposital pra não consumir Limite total de usos linearmente com o tamanho do grupo.

Por que um cupom pode falhar

A validação devolve um motivo claro:

  • Cupom inativo — você desligou o toggle.
  • Não está vigente — antes da data inicial.
  • Cupom expirado — passou da data final.
  • Limite de usos atingido — usedCount = maxUses.
  • Valor mínimo não atingido — pedido abaixo do mínimo.
  • Não vale pra esses serviços — algum serviço não está na lista de restrição.

Excluir vs desativar

Excluir um cupom mantém o desconto aplicado em agendamentos passados (o valor cobrado é snapshot). Se quiser apenas pausar, edite o cupom e desmarque Ativo — mantém o histórico e o contador, e você pode religar quando quiser.