# Product

Um bem ou serviço que o negócio vende, faz, compra ou estoca, descrito uma única vez.

Um Product é uma coisa ou um trabalho que o negócio vende, descrito uma vez: um bem, um item de cardápio, um modelo de equipamento, uma peça, uma licença digital, um programa de serviço ou uma hora de consultoria. Product Type* diz qual. Um serviço é um Product sem estoque; estoque, custo de compra e receitas são fatos do Inventory, não colunas aqui. Quem vende e por quanto é uma [Offer](/pt-br/systems/products/entity-offer). Tipo BDS: schema:Product.

## Campos

### Identidade

| Campo | Armazenamento | Significado |
| --- | --- | --- |
| Name* | Texto | Nome comercial, sem tamanho nem embalagem |
| Product # | Autonumeração | Sequência local; identifique por Name* e SKU°, não pelo número |
| Description° | Texto longo | O que o produto é, para quem nunca o viu |
| SKU° | Texto | Nosso código de estoque; o código do fornecedor fica na vendor quote |
| GTIN° | Texto | Dígitos do código de barras impresso no produto |
| Image° | Anexos | Fotos; a primeira é a exibida |
| URL° | URL | Página do fabricante ou fornecedor |
| Documents° | Anexos | Manuais e fichas técnicas |

### Classificação

| Campo | Armazenamento | Significado |
| --- | --- | --- |
| Product Type* | Escolha única | Good, Menu Item, Ingredient, Equipment Model, Part, Retainer, Subscription, Project, Hourly, Digital |
| Kind | Fórmula | Service, Digital ou Good, derivado de Product Type* |
| Category° | Registros vinculados | [Product Category](/pt-br/systems/products/entity-product-category); uma categoria |
| Brand° | Registros vinculados | [Brand](/pt-br/systems/products/entity-brand); uma marca, em branco para bens sem marca |
| Intake Step | Fórmula | Encaminha linhas Draft ou sem status para o próximo passo de criação; vazio para Active e Archived |
| Product Check | Fórmula | Name* e Product Type* preenchidos |
| Tags° | Registros vinculados | [Tags (mirror)](/pt-br/systems/products/entity-tags); opcional |

### Quem o faz e de que catálogo é

| Campo | Armazenamento | Significado |
| --- | --- | --- |
| Provider° | Registros vinculados | [Organization (mirror)](/pt-br/systems/products/entity-organization); a empresa que fabrica o bem ou entrega o serviço |
| Owner° | Registros vinculados | [Organization (mirror)](/pt-br/systems/products/entity-organization); a única empresa do grupo cujo catálogo o contém; em branco significa compartilhado |

### Composição, ofertas e substitutos

| Campo | Armazenamento | Significado |
| --- | --- | --- |
| Components | Registros vinculados | Linhas em [Product Component](/pt-br/systems/products/entity-product-component) em que este produto é o todo |
| Component Of | Registros vinculados | Linhas em que este produto é a parte |
| Offers | Registros vinculados | [Offers](/pt-br/systems/products/entity-offer) que vendem este produto |
| Alternative To° | Registros vinculados | Num substituto, o produto principal que ele pode substituir |
| Alternatives | Registros vinculados | Inverso: produtos que podem substituir este |

### Estado e auditoria

| Campo | Armazenamento | Significado |
| --- | --- | --- |
| Lifecycle Status* | Escolha única | Draft, Active, Archived |
| Created At | Data de criação | Quando a linha foi criada |

Grid de consulta capturada em 2026-10-28, antes dos intakes e dos ajustes de nomes. Use os nomes atuais das views indicados neste guia.

[![Grid de Product: uma linha por bem ou serviço; Kind segue Product Type*.](/systems/products/screens/products-product-grid.png)](/systems/products/screens/products-product-grid.png)

## Regras calculadas

### Kind

```text
IF(OR({Product Type*} = "Retainer", {Product Type*} = "Subscription", {Product Type*} = "Hourly", {Product Type*} = "Project"), "Service",
IF({Product Type*} = "Digital", "Digital",
IF(LEN({Product Type*} & "") = 0, "", "Good")))
```

Uma linha Service também é um schema:Service. Kind fica em branco enquanto Product Type* estiver em branco.

## Vínculos e cardinalidade

Um produto pode ter várias ofertas, várias linhas de componente como todo e várias como parte. As descrições dos campos pedem exatamente uma Category°, Brand°, Provider° e Owner°, mas todo campo de vínculo aceita vários registros; nenhuma fórmula checa isso. O Provider não é o vendedor: uma empresa do grupo pode vender um programa que outra empresa entrega.

## Roteamento do intake

O intake de criação usa estas fórmulas locais. Registros Active e Archived saem dos passos roteados; as mudanças de status continuam manuais.

### Product Check

```text
IF(LEN(TRIM({Name*} & "")) = 0, "⚠ No product name. ", "") & IF(LEN({Product Type*} & "") = 0, "⚠ No product type. ", "")
```

### Intake Step

```text
IF(OR({Lifecycle Status*} = "Draft", {Lifecycle Status*} = BLANK()), IF(LEN(TRIM({Name*} & "")) = 0, "Create - 1", IF(LEN({Product Type*} & "") = 0, "Create - 2", "Create - 3")), "")
```

## Ciclo de vida

[Crie este registro pelo intake](/pt-br/systems/products/intakes-and-checks).

Toda linha nova começa como Draft. Defina Active quando estiver no catálogo hoje. Defina Archived para aposentá-la; nunca apague uma linha para a qual algo aponta. Arquivar um produto não arquiva suas ofertas nem suas linhas de componente; faça isso em cada linha.

## Exemplo

Um programa fictício: Name* = Example Program, Product Type* = Retainer, Kind = Service, Category° = Reputation Management, Provider° = a empresa do grupo que o entrega, Lifecycle Status* = Active. Components lista oito linhas; Offers lista uma oferta a 2600 por mês.

## Próximos passos

[Adicionar um produto e sua oferta](/pt-br/systems/products/add-product) · [Compor um produto](/pt-br/systems/products/compose-product) · [Todas as entidades](/pt-br/systems/products/entities)