Knowledge Base · 02

Catálogo de serviços, preços, IVA e add-ons

Como modelar o que o teu negócio vende: serviços com diferentes modelos de preço, taxas de IVA configuráveis, add-ons para upsell, recursos partilhados e campos personalizados.

Leitura de 6 min · Conteúdo factual extraído do produto

  • Preço fixo, "a partir de", intervalo, gratuito ou sob orçamento
  • IVA configurável com taxas por tenant (0%, 6%, 13%, 23%)
  • Add-ons com duração e preço próprios para upsell
  • Recursos (salas, equipamentos) e custom fields
01

Anatomia de um serviço

Cada serviço (Service) tem um conjunto de atributos que cobrem o essencial:

  • Nome e descrição em texto livre.
  • Foto (thumbnail_path) usada na página pública.
  • Duração base (base_duration_min) — tempo de bloco padrão.
  • Capacidade (max_participants) — relevante para aulas e recursos partilhados.
  • Estado (active) — para retirar serviços do público sem apagar histórico.
02

Modelos de preço

O FIRO suporta vários modos de pricing para cobrir realidades diferentes (price_type):

  • Fixo fixed — um valor único. Ex.: corte de cabelo 18 €.
  • "A partir de" from — preço base com possibilidade de subir consoante caso. Ex.: pintura "a partir de 35 €".
  • Intervalo range — faixa entre base_price e price_max. Ex.: tatuagem entre 60 € e 250 €.

Serviços gratuitos ou sob orçamento

O atributo zero_price_label controla como aparece um serviço com preço zero:

  • Free — exibido como "Grátis".
  • On quote — exibido como "Sob orçamento".

Útil para diagnósticos iniciais, primeira consulta gratuita, casos que pedem orçamento individual.

03

IVA e taxas configuráveis

Cada tenant tem o seu próprio conjunto de taxas de IVA (VatRate):

  • Por defeito: 0%, 6%, 13%, 23% (taxas portuguesas correntes).
  • Cada taxa tem rótulo, ordenação, um flag de "default" e estado activo/inactivo.
  • Cada serviço aponta a uma taxa via vat_rate_id.

Preço com ou sem IVA

O atributo price_includes_vat diz se o preço apresentado já inclui IVA ou se é a base. O sistema calcula correctamente em ambos os modos para o cálculo do total e dos relatórios.

04

Categorias

Os serviços agrupam-se em ServiceCategory. As categorias são usadas:

  • Na página pública para organizar a oferta visualmente.
  • No backoffice para filtrar e gerir em lote.
  • Em promoções com scope "categoria" (todos os serviços de uma categoria entram no desconto).

Categorias típicas: "Cabelo", "Barba", "Cor", "Tratamentos", "Estética facial", "Corpo" — cada negócio define as suas.

05

Add-ons e extras

Addons são extras independentes que se ligam a serviços via M2M. Cada add-on tem:

  • Preço próprio que entra no total da marcação.
  • Duração extra que estica o slot reservado.

O fluxo público sugere os add-ons relevantes ao escolher o serviço. É o mecanismo de upsell mais directo: tratamento extra no corte, máscara extra na limpeza facial, sessão estendida.

06

Quem pode fazer cada serviço

A relação staff-serviço é M2M (service_staff). Permite cenários como:

  • Apenas certos profissionais fazem coloração; o slot só aparece para esses.
  • Todos podem fazer corte, mas só dois fazem alisamentos químicos.
  • Recurso "cabine 2" reservada a tratamentos específicos.

Duração override por staff

O pivot tem duration_override_min — uma profissional sénior pode demorar 30 min num serviço onde a junior demora 50. O motor calcula slots com a duração correcta para a pessoa escolhida.

07

Recursos: salas, cabines e equipamentos

Para serviços onde o que se reserva é um espaço ou equipamento, há o conceito de Resource (com tipos via ResourceType):

  • Salas — gabinetes, cabines, salas de aula.
  • Equipamentos — máquinas, cadeiras, mesas de tratamento.
  • Capacidade e localização próprias.

Modos que envolvem recursos

O serviço pode estar configurado como requires_resource (só recurso, sem profissional) ou requires_staff_and_resource (ambos). O motor de slots cruza disponibilidades.

08

Disponibilidade ao nível do serviço

Além do horário do staff, há ServiceAvailabilitySchedule — horários por dia da semana ao nível do serviço, opcionalmente por staff. Cobre regras como:

  • "Coloração só de manhã" — embora a profissional trabalhe o dia todo.
  • "Aulas de pilates apenas terça e quinta às 19h."
  • "Massagens à tarde, atendimento de manhã."
09

Campos personalizados por serviço

O atributo custom_fields_config_json permite definir campos extra que o cliente preenche ao marcar:

  • "Cor de cabelo desejada" para uma pintura.
  • "Tamanho aproximado" para uma tatuagem.
  • "Alergias conhecidas" para tratamentos específicos.

Os valores ficam guardados na linha da marcação para o profissional consultar antes do atendimento.

Para a equipa comercial

O que dizer ao lead

A maioria das ferramentas trata todos os serviços iguais. O FIRO modela diferenças reais — e isso aparece no preço final, no IVA correcto e na agenda mais limpa.

  • "O teu IVA, à tua maneira" — taxas configuráveis e cálculo correcto consoante esteja incluído no preço ou não.
  • "Profissional sénior demora menos? O sistema sabe." — duração override por staff é um detalhe que toca quem já lida com agenda real.
  • "Vendes pacotes? Vendes orçamentos?" — preço "a partir de", intervalos, sob orçamento. Não tens de mentir ao cliente.
  • "Add-ons como mecanismo de upsell" — explica que cada add-on adiciona automaticamente tempo e valor, sem fricção.

Âmbito atual & roadmap

O produto evolui semana a semana. Aqui está o que existe hoje e o que está confirmado para chegar.

Hoje no produto

  • Catálogo com categorias, preços e IVA
  • 3 modelos de preço + free / sob orçamento
  • Add-ons com duração e preço extra
  • Recursos (salas, equipamentos) e tipos
  • Horários ao nível de serviço
  • Campos personalizados por serviço

A caminho

  • Pacotes pré-pagos com saldo contável de sessões
  • Variantes ao nível do serviço (ex.: "corto curto / médio / longo")
  • Pricing dinâmico por hora ou dia da semana
  • Bundles / combos com preço promocional automático

Perguntas frequentes

O preço pode incluir já o IVA ou tenho de calcular à parte?

Cada serviço tem o flag price_includes_vat. Mostras o que faz mais sentido ao teu cliente — o backoffice e os relatórios calculam sempre correctamente.

Posso ter o mesmo serviço com preço diferente para profissionais diferentes?

Hoje a duração varia por profissional (override). Pricing por staff está no roadmap — entretanto cria-se com nomes diferenciados ("Corte com sénior", "Corte com junior").

Como aparece um serviço gratuito na página pública?

Defines o preço a zero e escolhes o zero_price_label: "free" mostra "Grátis", "on_quote" mostra "Sob orçamento".

Recursos podem ser reservados sem profissional?

Sim. Configuras o serviço como requires_resource e o slot só verifica a disponibilidade do recurso — útil para cabines de bronzeamento ou salas de coworking.

Os add-ons ficam guardados no histórico do cliente?

Sim. Cada add-on aplicado fica registado na linha da marcação e entra no histórico de transações.

Continua à conversa com a equipa comercial

Mostramos o produto a funcionar, respondemos a dúvidas específicas do teu negócio e ajudamos-te a escolher o plano certo.

Continua a explorar a Knowledge Base