Catálogo
Crie o catálogo de produtos: módulos (versões/lançamentos), complementos (recursos da plataforma) e bundles (planos que os clientes compram).
Caminhos de administrador:
- Admin → Módulos
- Admin → Complementos
- Admin → Pacotes
Módulos (do módulo ao lançamento)
Um módulo é uma extensão do NexoPOS que a plataforma pode instalar em instalações autorizadas. Cada módulo tem uma ou mais versões (lançamentos).
Criar um módulo
- Admin → Módulos → Criar.
- Definir nome, slug, descrição.
- Opcional: repositório GitHub padrão + visibilidade para versões.
- Status: disponível / indisponível; permitir atualizações quando indisponível controla se as instalações existentes ainda podem atualizar.
Publicar uma versão (release)
Abra o módulo → adicione a versão:
| Source | Fields |
|---|---|
| GitHub | Repo owner/name, ref/tag (e.g. v1.2.0), visibility; platform token used if private |
| ZIP | Upload package (size limit enforced server-side, e.g. 50MB) |
Marque a versão publicada para que possa ser selecionada para instalações/atualizações.
Fluxo de trabalho:
Create module
→ Add version (GitHub ref or ZIP)
→ Publish version
→ Attach module to one or more bundles
→ Customer installs/updates from entitled bundle
Placeholder de captura de tela: Página de exibição do módulo com lista de versões e ação de Publicar
Dicas
- Prefira tags semver como github_ref para reprodutibilidade.
- Repositórios de módulos privados precisam de um PAT válido do Admin → GitHub.
- O canal Core NexoPOS (latest/pinned) é separado em Settings → GitHub.
Complementos
Os add-ons são direitos pagos opcionais em uma instalação (não em toda a organização). Apenas duas chaves de recursos da plataforma estão conectadas hoje:
| Feature (UI) | feature_key | Unlocks |
|---|---|---|
| Custom domain | custom_domain | Domain tab attach/verify when Domain mode is addon |
| Backups | backups | Backup tab + scheduled platform backups |
Crie um complemento
- Admin → Complementos → Criar.
- Recurso — selecione no menu suspenso (não é texto livre). Escolher a chave errada significa que a interface nunca será desbloqueada.
- Nome, descrição, preço (centavos), moeda, intervalo de faturamento (mensal / anual / único).
- Disponibilidade — por exemplo, publicada (disponível para compra), oculta, etc.
- Salvar.
Interação no modo de domínio
| Admin Domain custom_domain_mode | Customer experience |
|---|---|
| free | Custom domain without purchasing the add-on |
| addon | Must purchase Custom domain add-on (or already entitled) |
| disabled | Domain attach not offered |
Interação de backups
- Requer o complemento de backups publicados + uma elegibilidade ativa na instalação.
- O armazenamento e o agendamento vêm de Configurações → S3 / Backups, e não apenas do preço do complemento.
Pacotes (planos)
Um pacote é o que os clientes assinam por instalação. Ele inclui:
- Preços (teste / introdutório / recorrente)
- Limites de recursos (disco, rótulo/compartilhamento de CPU)
- Módulos incluídos
- Recursos de marketing / selos
- Disponibilidade (publicada, etc.)
Campos de preços explicados
| Field | Meaning |
|---|---|
| Trial days (trial_days) | Free trial length on first checkout of a new install. No paid “full price” invoice is invented while trialing. Renewals never re-grant trial. |
| Intro / entry price (intro_price_cents) | Preferential first charge amount (in cents) when intro is configured. |
| Intro period days (intro_period_days) | How long the intro pricing window is intended to last (product metadata used with intro pricing). |
| Recurring price (recurring_price_cents) | Ongoing price after intro / for renewal line items. |
| Billing interval | e.g. monthly |
| Currency | ISO code, e.g. USD |
A verificação cria itens de linha a partir destas regras dentro do BillingService (agnóstico de gateway).
Como a fase experimental, a introdução e a recorrência interagem
Pense em três alavancas:
- Apenas teste — o cliente começa sem pagar o valor recorrente total; a assinatura fica em período de teste até o fim do teste e, depois, aplica-se a cobrança normal / período de carência. Exemplo (seed Professional): trial_days = 14, intro 0, recorrente $49.
- Preço de entrada sem teste — a primeira cobrança usa os centavos de entrada; a recorrente é o preço da lista depois / nos caminhos de renovação. Exemplo (seed Starter): entrada $1 (100 centavos), recorrente $19, teste 0.
- Nem — a primeira cobrança usa o preço recorrente imediatamente.
Importante:
- O teste é para a verificação de uma nova instalação, não para uma vaga gratuita permanente.
- As compras adicionais no meio do ciclo de vida são itens de linha separados / itens do gateway.
- Cupons (se configurados) são aplicados no checkout quando forem válidos.
Exemplos trabalhados
Estilo iniciante
| Value | |
|---|---|
| Intro | $1.00 for first period |
| Recurring | $19.00 / month |
| Trial | 0 days |
O cliente paga o valor de introdução no primeiro checkout bem-sucedido (de acordo com as regras do gateway) e, depois, de forma recorrente.
Estilo profissional
| Value | |
|---|---|
| Trial | 14 days |
| Recurring | $49.00 / month |
| Intro | $0 |
O cliente pode começar sem uma fatura integralmente paga durante o período de teste; após o teste, aplicam-se as regras de cobrança e de carência/suspensão.
Anexar módulos
No formulário do pacote, selecione quais módulos estão incluídos. Apenas os módulos aos quais você tem direito aparecem para instalação/atualização nas instalações do cliente.
Publicar o pacote
Defina a disponibilidade como publicado e a ordem de classificação / selo de destaque para a página de preços de marketing.
Ordem sugerida de configuração do catálogo
- Configurar as configurações do GitHub.
- Crie módulos + publique pelo menos uma versão de cada.
- Crie complementos (custom_domain, backups) se você os vender.
- Crie bundles, anexe módulos, defina teste/introdução/recorrência.
- Publique bundles e abra o Pricing como cliente.
- Configure o modo de domínio e o S3 para que os add-ons funcionem de ponta a ponta.