Skip to content

Entitlement Classes

Uma Entitlement Class define que tipo de acesso um entitlement representa. Quando o sistema cria um entitlement, a classe determina quais recursos derivados são provisionados, como o entitlement é renovado e como ele aparece na interface admin e no portal do cliente.

Classes não são hardcoded. Elas são armazenadas no banco de dados e configuráveis pelo WordPress admin. O sistema é distribuído com classes integradas que cobrem os cenários B2B mais comuns, e admins podem criar classes personalizadas para suas próprias necessidades de negócio.

Classes integradas

O MIDDAG Account é distribuído com estas classes:

ClassePrefixo do códigoO que cobreRecursos derivados criados
PLGPLG-Plugin ou licença de softwareLicença (chave de ativação, máx. sites), Download
ENVENV-Ambiente de hospedagem gerenciadaAmbiente (plataforma, URL, status de saúde), Solicitação de Serviço
SVCSVC-Serviço contínuo ou projetoServiço, Contrato, Saldo de Créditos, Solicitação de Serviço, Documento
ORDORD-Compra geralVínculo com Pedido, Vínculo com Fatura, Documento, Download
AFLAFL-Membro de programa de afiliadosRegistro de Afiliado (faixa de comissão, rastreamento de indicações)
EDUEDU-Educação, treinamento ou cursoVínculo com Pedido, Documento (materiais), Download

Cada classe tem seu próprio prefixo de código. Quando você vê um código como ENV-2026050003, sabe imediatamente que é um ambiente gerenciado criado em maio de 2026.

O que cada classe controla

PLG — Plugin

Para produtos de software. Quando um Entitlement PLG é criado:

  • Uma Licença é gerada com uma chave de ativação
  • A licença tem um número máximo de ativações de sites (configurado por produto)
  • O acesso a downloads é habilitado se o produto tiver arquivos disponíveis para download
  • O status da licença segue o ciclo de vida do entitlement: se o entitlement é suspenso, a licença fica inativa

Use PLG para: plugins WordPress, complementos de software, qualquer produto que necessite de chave de licença e acesso a downloads.

ENV — Ambiente

Para instalações de hospedagem gerenciada. Quando um Entitlement ENV é criado:

  • Um registro de Ambiente é criado com status provisioning
  • O ambiente rastreia plataforma (Moodle, WordPress ou personalizada), URL e status de saúde
  • A URL é preenchida manualmente por um admin ou automaticamente via webhook do sistema de provisionamento

Use ENV para: sites Moodle gerenciados, instalações WordPress gerenciadas, qualquer plataforma hospedada que você mantém para clientes.

SVC — Serviço

Para serviços contínuos ou projetos com prazo definido. SVC é a classe mais complexa porque suporta dois modos de ciclo de vida:

  • Contínuo (lifecycle: ongoing) — um serviço contínuo com cobrança recorrente, como suporte de hospedagem gerenciada ou gestão de infraestrutura. Cria um Contrato com termos de renovação.
  • Projeto (lifecycle: project) — um engajamento com prazo definido, com data de início e fim, como um projeto de consultoria ou desenvolvimento personalizado.

Quando um Entitlement SVC é criado:

  • Um registro de Serviço é criado rastreando o tipo de serviço (hospedagem, suporte, infraestrutura, consultoria, desenvolvimento, aplicativos móveis, migração, upgrade, gestão de projetos)
  • Um Contrato é criado se o serviço for contínuo (ou se exigido por política), com termos de SLA e intervalo de datas
  • Um Saldo de Créditos é criado com os créditos iniciais incluídos no plano
  • Solicitações de Serviço e Documentos são vinculados conforme são criados

Use SVC para: planos de suporte, engajamentos de consultoria, infraestrutura gerenciada, qualquer serviço que sua empresa entrega.

ORD — Pedido

A classe de uso geral para compras que não se encaixam em uma categoria especializada. Quando um Entitlement ORD é criado:

  • O entitlement é vinculado ao Pedido e à Fatura de origem
  • O acesso a downloads é habilitado se o produto tiver arquivos disponíveis para download
  • Nenhum recurso derivado especializado é provisionado

ORD é também a classe padrão: se um produto não tiver o campo de metadado _middag_entitlement_class definido, o sistema cria um Entitlement ORD.

Use ORD para: compras únicas, mercadorias em geral, produtos que precisam de rastreamento mas não de licença ou gestão de serviços.

AFL — Afiliado

Para membros de um programa de parceiros ou afiliados. Quando um Entitlement AFL é criado:

  • O entitlement é vinculado a um registro de Afiliado na integração SolidAffiliate
  • Faixas de comissão e rastreamento de indicações seguem a configuração do SolidAffiliate

Use AFL para: parcerias de afiliados, programas de revenda, rastreamento de indicações.

EDU — Educação

Para treinamentos, mentorias e cursos. Quando um Entitlement EDU é criado:

  • O entitlement é vinculado ao Pedido de origem
  • O acesso a downloads é habilitado para materiais educacionais
  • E-mails de boas-vindas e onboarding são enviados ao cliente

Use EDU para: cursos online, programas de mentoria, trilhas de certificação, qualquer conteúdo educacional que você vende.

Como as classes se mapeiam para produtos WooCommerce

A conexão entre um produto WooCommerce e uma Entitlement Class é um único campo de metadado do produto:

_middag_entitlement_class = PLG | ENV | SVC | ORD | AFL | EDU

Quando um cliente compra um produto e o pedido é concluído, o serviço de provisionamento lê esse campo de metadado para determinar qual classe de entitlement criar. Campos de metadado adicionais do produto controlam comportamentos específicos da classe:

Campo de metadado do produtoUsado porFinalidade
_middag_entitlement_classTodosQual classe de entitlement criar
_middag_svc_lifecycleSVCongoing ou project — determina o tipo de serviço
_middag_parent_entitlementQualquerVincular automaticamente como filho de um entitlement existente

Esse mapeamento é configurado uma vez por produto. Após isso, toda compra desse produto cria automaticamente o tipo correto de entitlement com os recursos derivados corretos.

Criando classes personalizadas

Se as classes integradas não cobrem seu negócio, você pode criar classes personalizadas pelo WordPress admin. Uma classe personalizada precisa de:

  1. Um prefixo de código único (3 caracteres, maiúsculas) — usado no formato do código do entitlement
  2. Um nome de exibição — mostrado na interface admin e no portal do cliente
  3. Configuração de recursos derivados — quais recursos provisionar quando um entitlement dessa classe for criado
  4. Comportamento de ciclo de vida — como a classe trata renovação, expiração e cancelamento

Classes personalizadas são armazenadas no banco de dados junto com as classes integradas. Funcionam de forma idêntica em todos os aspectos: geração de código, gestão de ciclo de vida, Policy Engine e API REST.

Classes e a Policy Engine

A Entitlement Class é o segundo nível da hierarquia de sobrescrita de políticas:

Global > Entitlement Class > Organization > Product > Individual Entitlement

Isso significa que você pode definir regras como:

  • "Todos os Entitlements PLG renovam automaticamente" (política no nível da classe)
  • "Todos os Entitlements SVC têm um cooldown de 30 dias para mudança de plano" (política no nível da classe)
  • "Entitlements ENV requerem aprovação do admin para provisionamento" (política no nível da classe)

Essas políticas no nível da classe sobrescrevem os padrões globais, mas podem ser sobrescritas nos níveis de organização, produto ou entitlement individual. Veja Políticas para a explicação completa.

O que os admins veem

No WordPress admin, a página de configuração de Entitlement Classes mostra:

  • Todas as classes registradas (integradas e personalizadas)
  • Prefixo de código e nome de exibição de cada uma
  • Número de entitlements ativos por classe
  • Se a classe é integrada ou personalizada
  • Ações: editar configuração, ver todos os entitlements desta classe

Ao criar ou editar um produto no WooCommerce, a Entitlement Class é selecionável em um dropdown no painel de configurações MIDDAG Account do produto.

Páginas relacionadas