Sistema de Produtos e Quotas no Pretix
Este tutorial explica em profundidade como funciona o sistema de Produtos (itens) e Quotas no Pretix, com foco em:
- Como modelar ingressos e itens (produtos)
- Como controlar capacidade (quotas)
- Como isso afeta disponibilidade na loja, status de esgotado e check-in
- Cenários reais, incluindo eventos únicos e séries de eventos / time slots
💡 Regra de ouro (gravíssima):
Nenhum produto aparece para venda se não estiver associado a pelo menos uma quota.
Produto sem quota é produto invisível e invendável.
🧩 Visão geral: Produtos x Quotas
🧾 Produtos (itens)
No Pretix, tudo o que pode ser vendido (ingresso, camiseta, refeição, pacote, credencial etc.) é chamado internamente de item (produto).
Exemplos de produtos:
- Ingresso Inteira
- Ingresso Meia-entrada
- Ingresso Cortesia
- Almoço no evento
- Camiseta do evento
- Pacote 3 dias (bundle)
- Visita guiada em museu
Um produto define o que está sendo vendido e com quais características (nome, preço, variações, se dá direito de entrada, etc.).
📦 Quotas (capacidade)
Uma quota é um “pote de capacidade” que define quantas vezes um produto pode ser vendido.
- É a quota que define “até quantos ingressos” podem ser vendidos.
- Vários produtos podem consumir a mesma quota (ex.: inteira + meia + cortesia todos consumindo do mesmo auditório de 100 lugares).
- Um produto pode estar em várias quotas (para regras mais avançadas, como early-bird por número de ingressos).
Exemplos:
-
Quota “Auditório – 200 lugares”
- Produtos ligados: Inteira, Meia, Cortesia
- Capacidade: 200
- Quando a soma dos ingressos vendidos desses produtos chegar a 200, tudo esgota.
-
Quota “Meias limitadas – 50”
- Produtos ligados: apenas Meia
- Capacidade: 50
- Meias esgotam em 50, mas o evento pode continuar vendendo Inteira se outra quota permitir.
🔗 Relação fundamental
- Produtos dizem o que está à venda.
- Quotas dizem quantos podem ser vendidos.
- O Pretix só considera um produto disponível se:
- O produto estiver ativo e dentro do período de venda
- O produto estiver em pelo menos uma quota
- Todas as quotas associadas ao produto tiverem capacidade suficiente para a quantidade pedida.
Se qualquer dessas condições falhar, o produto aparece como esgotado, indisponível ou nem aparece na loja.
✅ Pré-requisitos para trabalhar com Produtos e Quotas
Antes de configurar produtos e quotas, é importante ter:
-
Organizador criado
- Ex.:
eventos.ufsc.br/UFSC – Eventos Acadêmicos - Permissões: seu usuário precisa ter permissão para gerenciar eventos nesse organizador.
- Ex.:
-
Evento criado (singular ou série)
- Evento singular (uma data, ou poucas datas concentradas)
- Ou event series / time slot booking (muitas datas/horários, tipo visitas guiadas, museu, escape room).
-
Acesso ao painel do evento
- Você deve conseguir abrir o evento e ver o menu lateral com:
- Produtos → Produtos
- Produtos → Quotas
- (Em séries: também Datas).
- Você deve conseguir abrir o evento e ver o menu lateral com:
A partir disso, você pode configurar:
- Primeiro os produtos
- Depois as quotas
- E por fim verificar a loja e o comportamento real no fluxo de compra.
🧾 Produtos em detalhes
📍 Onde configurar produtos
No painel do evento:
Evento → Produtos → Produtos
Nesta tela você vê a lista de produtos do evento e o botão Criar um novo produto.
A partir daí, cada produto terá suas próprias abas e opções.
🧱 Campos principais de um produto
Quando cria ou edita um produto, você terá campos típicos como:
-
Nome
- Nome visível para o cliente:
- Ex.:
Ingresso Inteira,Ingresso Meia-entrada,Camiseta P,Visita guiada.
- Ex.:
- Nome visível para o cliente:
-
Descrição
- Texto que aparece na página de venda (pode usar Markdown em muitos campos).
- Use para explicar regras:
- Ex.: “Válido mediante apresentação de carteira estudantil na entrada.”
-
Preço padrão (default price)
- Preço principal do produto (caso não seja sobrescrito por variações ou regras específicas).
-
Imposto / Regra de imposto
- Seleciona a regra de imposto aplicável (diferente por país/região, se configurado).
-
Categoria
- Agrupa produtos na loja (ex.:
Ingressos,Oficinas,Merchandise).
- Agrupa produtos na loja (ex.:
-
Produto de admissão (entrada)
- Marca se o produto dá direito de entrada ao evento (ticket de acesso).
- Produtos de merchandising normalmente não são de admissão.
-
Limites por pedido
- Mínimo / máximo de unidades que podem ser compradas em um único pedido.
- Ex.: “Máximo 1 cortesia por pedido” ou “mínimo 5 ingressos para ingresso de grupo”.
-
Período de disponibilidade (Available from / until)
- Controla quando o produto aparece para venda:
- Só a partir de certa data/hora
- Até certa data/hora
- Pode ser configurado:
- No nível do produto (singular)
- E, para séries de eventos, por data (subevento).
- Controla quando o produto aparece para venda:
-
Visibilidade / Regras de exibição
- Alguns campos controlam se o produto aparece:
- Somente com voucher
- Apenas após esgotar outro produto (early-bird por quota)
- Ocultar quando esgotado, etc.
- Alguns campos controlam se o produto aparece:
🎚️ Variações de produto
Um produto pode ter variações, por exemplo:
- Produto
Camisetacom variações:P,M,G
- Produto
Ingressos VIPcom variações:VIP Dia 1,VIP Dia 2,VIP 3 dias
Cada variação pode ter:
- Nome próprio
- Preço próprio
- Disponibilidade própria
- Associação de quotas específica (podendo ter quotas só para certas variações)
Isso é muito útil quando o conceito é o mesmo (camiseta, ingresso VIP), mas muda apenas tamanho/tipo.
➕ Add-ons e Bundles (visão rápida)
Os produtos ainda podem se relacionar entre si de formas mais avançadas:
-
Add-ons
- Produtos adicionais que só podem ser comprados junto com outro produto.
- Ex.: ingressos de
Workshopscomo add-on doIngresso Conferência.
-
Bundles (produtos em pacote)
- Um produto “puxa” outros automaticamente, emitindo múltiplos ingressos.
- Ex.:
Pacote 3 diasque gera 3 ingressos (Dia 1, Dia 2, Dia 3), todos consumindo das quotas corretas.
O importante aqui, para este tutorial, é entender que add-ons e bundles também participam de quotas e consomem capacidade como qualquer produto.
📦 Quotas em detalhes
📍 Onde configurar quotas
No painel do evento:
Evento → Produtos → Quotas
Você verá:
- Lista de quotas já existentes
- Capacidade total de cada quota
- Quantos lugares ainda estão disponíveis
- Botão Criar uma nova quota
🧱 Campos principais de uma quota
Ao criar/editar uma quota, você terá campos típicos como:
-
Nome da quota
- Ex.:
Auditório Principal – 200 lugares,Meias limitadas – 50,Camisetas estoque geral.
- Ex.:
-
Capacidade total (size)
- Número máximo de unidades que podem ser vendidas no total para os produtos ligados àquela quota.
- Pode ser:
- Um número (ex.:
200) - Ou ilimitado (
null), se você quiser que a quota nunca acabe.
- Um número (ex.:
-
Produtos (items) associados
- Lista de produtos que consomem dessa quota.
-
Variações associadas (variations)
- Caso você queira que apenas certas variações usem essa quota.
-
Subevento (date / event series)
- Em séries de eventos / time slots:
- A quota pode ser ligada a uma data específica (subevent)
- Ou valer para várias datas, dependendo da configuração.
- Em séries de eventos / time slots:
-
Fechar quando esgotar (close_when_sold_out)
- Se ativado:
- Quando a quota chegar a 0, ela fecha permanentemente até ser reaberta manualmente.
- Mesmo que alguma capacidade seja liberada depois (por cancelamento, por exemplo), o sistema não volta a vender automaticamente.
- Se ativado:
-
Quota fechada (closed)
- Flag que indica se a quota está fechada (independente de sobrar capacidade).
- Você pode fechar manualmente uma quota (parar vendas mesmo antes de esgotar).
-
Liberar após saída (release_after_exit)
- Usado em cenários com controle de entrada e saída (check-in + check-out):
- Quando um ingresso é escaneado na saída, a quota pode recuperar aquela capacidade.
- Útil para:
- Museus, parques, feiras ou locais com limite simultâneo de pessoas, mas circulação ao longo do dia.
- Usado em cenários com controle de entrada e saída (check-in + check-out):
-
Ignorar para disponibilidade do evento (ignore_for_event_availability)
- Quando ativado:
- A quota não é usada para determinar se o evento aparece como “esgotado” no calendário/listas.
- Exemplo:
- Quota de camisetas/merchandising: você não quer que o evento geral apareça como esgotado só porque a camiseta acabou.
- Quando ativado:
🧮 Como o Pretix calcula disponibilidade
O Pretix calcula a disponibilidade de uma quota considerando diversos fatores. Conceitualmente, ele faz algo como:
Capacidade disponível = capacidade total – (pedidos + carrinhos + vouchers bloqueantes + lista de espera ± check-out)
Mais precisamente, para cada quota, ele leva em conta:
- Pedidos pagos
- Pedidos pendentes ainda dentro do prazo de pagamento
- Itens atualmente reservados em carrinhos (carrinho não finalizado)
- Vouchers configurados como “quota blocking”
- Pessoas na lista de espera, quando considerado
- Ingressos com check-out (quando
release_after_exitestá ativo)
Quando a capacidade calculada chega a zero:
- A quota é tratada como esgotada, e
- Qualquer produto que dependa dessa quota não pode mais ser vendido.
Se a quota for ilimitada, ela é sempre tratada como disponível (a menos que esteja manualmente fechada, ou fechada após esgotar e close_when_sold_out esteja ativado).
🔗 Ligando Produtos e Quotas (passo a passo)
1️⃣ Criar produtos
- Acesse Evento → Produtos → Produtos
- Crie todos os produtos necessários:
Inteira,Meia,Cortesia- ou
Ingresso Dia 1,Ingresso Dia 2, etc.
- Verifique:
- Campo de preço
- Se é produto de admissão
- Período de venda (opcional)
Até aqui, mesmo que o produto esteja “ativo”, ele não será vendável sem quota.
2️⃣ Criar quotas
- Acesse Evento → Produtos → Quotas
- Clique em Criar uma nova quota
- Defina:
- Nome (ex.:
Auditório – 200 lugares) - Capacidade (ex.:
200) - Marque todos os produtos que consumirão essa quota (ex.: Inteira, Meia, Cortesia)
- Nome (ex.:
- Salve.
Neste momento:
- Todos os produtos marcados passam a compartilhar a mesma capacidade.
- Quando a soma das vendas (considerando carrinho/pedidos/etc.) atingir 200, a quota esgota.
3️⃣ Regra de múltiplas quotas por produto
Você pode ter múltiplas quotas associadas ao mesmo produto.
- O produto só é vendável se todas as quotas associadas estiverem com capacidade suficiente.
- Esse recurso é usado para modelar:
- Early-bird por número de ingressos
- Múltiplos limites sobre o mesmo produto (ex.: um limite geral + limite só para ingressos subsidiados).
Exemplo simplificado:
- Quota
Geral – 200 - Quota
Meias limitadas – 50 - Produto
Meiaestá nas duas quotas.
Comportamento:
- Enquanto ambas tiverem capacidade,
Meiaé vendida. - Se
Meias limitadaschegar a 0, mesmo queGeral – 200ainda tenha capacidade,Meianão pode mais ser vendida (porque uma das quotas está esgotada). Inteirapode continuar sendo vendida se estiver apenas na quotaGeral.
🧪 Cenários de modelagem prática
🎭 Cenário 1: Auditório com Inteira e Meia
- Capacidade física do auditório: 200 pessoas
- Você não sabe quantas serão inteiras ou meias.
Modelagem:
- Produtos:
Ingresso InteiraIngresso Meia-entrada
- Quota:
Auditório – 200 lugares- Capacidade: 200
- Produtos ligados:
InteiraeMeia
Efeito:
- A soma de Inteiras + Meias nunca passa de 200.
- O Pretix decide automaticamente a mistura, conforme as vendas.
🎟️ Cenário 2: Limitando número de meias
- Capacidade do auditório: 200
- No máximo 50 ingressos de meia.
Modelagem:
- Quota
Auditório – 200- Produtos:
Inteira,Meia - Capacidade: 200
- Produtos:
- Quota
Meias – 50- Produtos:
Meiaapenas - Capacidade: 50
- Produtos:
Efeito:
- Enquanto houver:
- Capacidade na quota
Auditório – 200e - Capacidade na quota
Meias – 50, Meiaestá disponível.
- Capacidade na quota
- Quando a quota
Meias – 50chega a 0:Meiaesgota (sem impactar as inteiras, se ainda houver vaga no auditório).
Inteiracontinua vendendo até a quotaAuditório – 200chegar a 0.
🛍️ Cenário 3: Merchandising que não afeta “evento esgotado”
Você quer vender camisetas, mas não quer que o evento pareça esgotado se acabarem as camisetas.
Modelagem:
- Produto
Camiseta - Quota
Camisetas – estoque- Capacidade: quantidade de camisetas em estoque
ignore_for_event_availability: ativado
Efeito:
- A loja marca a camiseta como esgotada quando a quota zerar.
- Mas o evento em si ainda pode aparecer como disponível no calendário, se as quotas de ingressos ainda tiverem capacidade.
🧷 Cenário 4: Pacote 3 dias (bundle)
- Você tem ingressos
Dia 1,Dia 2,Dia 3. - Quer vender:
- Ingressos individuais de cada dia
- Um pacote 3 dias, que emite 3 ingressos individuais (um por dia).
Modelagem simplificada:
- Produtos:
Ingresso Dia 1,Ingresso Dia 2,Ingresso Dia 3(admission)Pacote 3 dias(não-admission, com bundle configurado)
- Bundles:
- No produto
Pacote 3 dias, configure um bundle que adiciona:- 1× Dia 1
- 1× Dia 2
- 1× Dia 3
- No produto
- Quotas:
- Pode haver quotas gerais por dia ou gerais para todos os dias, dependendo da lotação.
Efeito:
- Ao comprar
Pacote 3 dias, o Pretix gera 3 ingressos individuais. - Cada ingresso consome capacidade das quotas corretas.
- Check-in e controle de acesso ficam coerentes (um ticket por dia).
⏱️ Produtos e quotas em séries de eventos / time slots
Quando o evento é criado como “Event series or time slot booking”, você passa a ter:
- Uma página Datas no menu do evento
- Cada data é um subevento, com:
- Nome próprio
- Data e hora
- Local e textos próprios
- Preços e quotas específicos por data
🧱 Produtos em séries
- Os produtos são definidos no nível da série (não por data individual).
- Para cada data você pode:
- Mudança de preço para aquele dia
- Desabilitar o produto naquela data
- Ajustar período de venda específico (Available from/until por data).
📦 Quotas em séries
- Cada data (subevento) pode ter suas próprias quotas:
- Ex.:
Sala 101 – Segunda 10h,Sala 101 – Quarta 10h, etc.
- Ex.:
- Uma quota pode ter o campo
subeventapontando para uma data específica.
Exemplo: time slots de museu
- Produto:
Ingresso Museu – 1 pessoa - Série de eventos com várias datas/horários (time slots).
- Para cada data/horário:
- Quota
Museu – 10hcom capacidade30 - Quota
Museu – 11hcom capacidade30, etc.
- Quota
Efeito:
- O cliente escolhe o horário e vê apenas as vagas daquele time slot.
- Cada horário tem seu próprio controle de capacidade.
🛒 Produtos, quotas e o fluxo de compra
1️⃣ Exibição na loja
Para que um produto apareça na loja como disponível para compra, o Pretix verifica:
- Evento ativo e em período de venda
- Produto:
- Ativo
- Dentro do período de disponibilidade (
Available from/until) - Não escondido por regra de visibilidade
- Quotas:
- O produto está em pelo menos uma quota
- Todas as quotas associadas têm capacidade suficiente para a quantidade pedida.
Se algo falhar:
- Produto pode aparecer como:
- Não listado
- Listado, mas esgotado
- Com aviso de indisponibilidade
2️⃣ Reserva no carrinho
Quando o cliente adiciona um produto ao carrinho:
- O Pretix verifica as quotas e reserva temporariamente a capacidade.
- Esses itens no carrinho entram como “cart positions” na contagem de disponibilidade.
- Se o cliente não finalizar a compra dentro do tempo de reserva:
- A reserva expira
- A capacidade volta a ser disponibilizada.
3️⃣ Criação do pedido e pagamento
Ao finalizar o pedido:
- As quotas continuam reservadas enquanto o pedido está:
- Pago, ou
- Pendente dentro do prazo de pagamento.
- Se o prazo expira sem pagamento, o sistema libera a quota.
- Se o pagamento chega depois e a quota ainda tiver capacidade, o Pretix aceita o pagamento; se não tiver, podem ocorrer erros ou o pagamento ser bloqueado, dependendo da situação e da configuração.
4️⃣ Check-in e quotas
Por padrão:
- O check-in não diminui nem aumenta a quota (a quota já foi consumida na venda).
Com release_after_exit configurado na quota:
- Ao registrar saída do participante (scan de saída):
- A quota pode recuperar aquela capacidade.
- Útil para:
- Ambientes com limitação de pessoas simultâneas, mas alta rotatividade.
Importante:
Esse tipo de uso exige configuração correta das listas de check-in e dos tipos de scan (entrada/saída).
⚠️ Erros comuns e como evitar
-
Produto não aparece na loja
- Causas comuns:
- Produto não está em nenhuma quota
- Quota está fechada ou com capacidade zero
- Período de venda do produto ainda não começou ou já terminou
- Produto marcado como oculto ou dependente de voucher.
- Causas comuns:
-
Evento aparece como “esgotado”, mas ainda há produtos
- Causa provável:
- Quotas de produtos secundários (ex.: merchandise) estão influenciando a disponibilidade global.
- Solução:
- Ativar
ignore_for_event_availabilitynas quotas que não deveriam marcar o evento como esgotado.
- Ativar
- Causa provável:
-
Meia esgotada antes do esperado
- Causa:
- Configuração de quotas incorreta (ex.: meia em quota muito pequena ou em múltiplas quotas restringindo demais).
- Solução:
- Verificar quais quotas estão associadas ao produto
Meiae suas capacidades.
- Verificar quais quotas estão associadas ao produto
- Causa:
-
Time slots mostrando capacidade estranha
- Causa:
- Quotas de uma data ligadas à data errada ou a nenhuma data (subevent incorreto).
- Solução:
- Revisar quotas em Eventos de série → Datas e checar o campo de subevento de cada quota.
- Causa:
✅ Boas práticas de configuração
-
Use uma quota geral por espaço físico
- Ex.:
Auditório X – 200 pessoas - Adicione nela todos os ingressos que consomem aquele espaço.
- Ex.:
-
Use quotas extras para categorias limitadas
- Ex.: quota só para
Meias, quota só paraCortesia, etc. - Lembre: isso restringe ainda mais o produto – ele depende da quota geral e da quota específica.
- Ex.: quota só para
-
Separar ingressos de admissão e merchandise
- Ingressos de entrada devem ter quotas que controlam participação.
- Itens como camisetas podem usar quotas com
ignore_for_event_availabilityativado.
-
Em séries de eventos / time slots, pense por data
- Quotas devem refletir a capacidade por horário/data, não só o total da série inteira.
- Use a tela Datas para ajustar preços e disponibilidade por data.
-
Testar sempre com um evento de homologação
- Crie um evento de teste.
- Monte produtos e quotas como se fosse o evento real.
- Simule:
- Carrinho cheio
- Vário tipos de ingressos
- Cancelamentos e expiração de pedidos
- Veja como isso afeta a disponibilidade antes de abrir vendas de verdade.
📚 Referências
Documentação oficial do Pretix que aprofunda e confirma os comportamentos descritos aqui:
- Produtos e quotas (guia de produtos):
- https://docs.pretix.eu/guides/products/
- https://docs.pretix.eu/tutorial/products/
- Conceitos e terminologia (itens, quotas, disponibilidade):
- https://docs.pretix.eu/dev/development/concepts.html
- API de itens e categorias (definição técnica de produtos, categorias, bundles, add-ons):
- https://docs.pretix.eu/dev/api/resources/items.html
- https://docs.pretix.eu/dev/api/resources/categories.html
- https://docs.pretix.eu/dev/api/resources/item_add-ons.html
- https://docs.pretix.eu/dev/api/resources/item_bundles.html
- API de quotas e cálculo de disponibilidade:
- https://docs.pretix.eu/dev/api/resources/quotas.html
- Modelo de dados e checagem de quotas (implementação interna):
- https://docs.pretix.eu/dev/development/implementation/models.html
- Séries de eventos / datas (subeventos e quotas por data):
- https://docs.pretix.eu/guides/event-series/
- Descontos, múltiplos níveis de preço, bundles avançados e relação com quotas:
- https://docs.pretix.eu/guides/products/discounts/
Nenhum comentário para exibir
Nenhum comentário para exibir