Fluxo de Compra e Renovação
Esta página explica o pipeline completo de compra -- da cotação ao entitlement -- e como funcionam as renovações, renovações automáticas e recuperação de pagamento.
O pipeline de compra
Passo a passo
1. Criação da cotação
Cotações originam-se de duas fontes:
- HubSpot CRM -- A equipe de vendas cria uma cotação no HubSpot. Um webhook a envia para o MIDDAG Account, que cria um registro local com itens, preços e datas de validade.
- Painel admin -- O admin cria uma cotação diretamente no admin do WordPress, selecionando a Organização, a entidade de faturamento (BR ou US), itens e condições.
Cotações iniciam no status draft. Quando enviadas ao cliente, transicionam para sent.
2. Análise pelo cliente
O cliente vê as cotações pendentes no portal. Abrir uma cotação transiciona o status de sent para viewed (com timestamp registrado). O cliente pode:
- Analisar itens e preços
- Adicionar comentários para negociação
- Aceitar a cotação (irreversível)
- Rejeitar a cotação (requer um motivo)
Cotações possuem um período de validade configurável (padrão: 30 dias). Cotações expiradas não podem ser aceitas, mas podem ser reenviadas pelo admin com novas datas de validade.
3. Aceitação e criação do pedido
Quando o cliente aceita uma cotação:
- O status da cotação transiciona para
accepted. - O sistema cria automaticamente um pedido WooCommerce a partir dos itens da cotação.
- O pedido é vinculado à cotação via metadados.
- O status é sincronizado de volta ao HubSpot.
- O cliente é direcionado à etapa de pagamento.
4. Pagamento
Os métodos de pagamento dependem da entidade de faturamento:
| Entidade | Métodos disponíveis |
|---|---|
| MIDDAG BR | Cartão de crédito (Stripe), Pix, Boleto (Banco Inter) |
| MIDDAG GLOBAL | Cartão de crédito (Stripe) |
O cliente seleciona um método de pagamento no portal:
- Pix: QR code gerado, pagamento confirmado via webhook do Banco Inter (timeout de 30 minutos).
- Boleto: Gerado com data de vencimento, pagamento confirmado via webhook do Banco Inter.
- Cartão de crédito: Formulário Stripe Elements, pagamento confirmado via webhook do Stripe.
5. Provisionamento do entitlement
Quando o pagamento é confirmado:
- O status do pedido WooCommerce é atualizado para
paid. - A cotação transiciona para
paid. - O sistema analisa os itens do pedido para determinar a Entitlement Class (PLG, ENV, SVC, ORD, EDU).
- Um entitlement é criado automaticamente com um código único.
- Os recursos downstream são provisionados com base na classe.
- A cotação transiciona para
fulfilled. - O cliente é notificado com o código do entitlement.
Veja Ativação de Entitlement para detalhes sobre o que acontece após a criação do entitlement.
6. Efeitos em cascata
A confirmação do pagamento aciona ações downstream adicionais:
- Fatura -- O Stripe gera uma fatura, sincronizada via webhook.
- NFSe -- Para transações BR, uma nota fiscal é emitida automaticamente via ISSNet (veja Faturamento e Finanças).
- HubSpot -- O status da negociação/cotação é atualizado no portal de origem.
- Jira -- Se configurado, um issue do Jira é criado para o cumprimento do pedido.
Fluxo de renovação
Renovação automática
Para entitlements baseados em assinatura, a renovação é gerenciada pelo WooCommerce Subscriptions e Stripe:
- A política de renovação determina quando tentar a renovação (padrão: 7 dias antes da expiração).
- O sistema cobra o método de pagamento armazenado via Stripe.
- Em caso de sucesso, a data de término do entitlement é estendida e permanece
active. - O cliente é notificado sobre a renovação bem-sucedida.
Renovação manual
Para entitlements não baseados em assinatura ou quando a renovação automática está desabilitada:
- O sistema envia lembretes de renovação em intervalos configuráveis (padrão: 30, 7 e 1 dia antes da expiração).
- O cliente pode iniciar a renovação pelo portal, o que inicia um novo fluxo de pagamento.
- Após o pagamento, o entitlement é renovado com datas atualizadas.
Período de carência
Quando um entitlement expira sem renovação:
- O entitlement transiciona para
expired. - Um período de carência configurável começa (governado pela RenewalPolicy).
- Durante o período de carência, o cliente ainda pode renovar.
- Se o período de carência terminar sem renovação, o sistema transiciona o entitlement em direção ao cancelamento (veja Suspensão e Recuperação).
Recuperação de pagamento
Quando um pagamento de renovação falha:
- O sistema faz novas tentativas conforme o cronograma de tentativas do Stripe.
- Se as tentativas se esgotarem, a PaymentRecoveryPolicy determina o que acontece em seguida.
- Por padrão, o entitlement é suspenso após o esgotamento das tentativas.
- O cliente é notificado em cada etapa.
- Se o pagamento for recuperado, o entitlement retorna a
activeautomaticamente.
Veja Suspensão e Recuperação para a linha do tempo completa de suspensão e escalação.
Páginas relacionadas
- Ativação de Entitlement -- O que acontece após a criação de um entitlement
- Faturamento e Finanças -- Geração de faturas e notas fiscais
- Operações Multi-Entidade -- Como a entidade de faturamento afeta os métodos de pagamento
- Pedidos -- Definições conceituais para pedidos e cotações