Pesquisar K
Appearance
Appearance
Um Kit (List) é um container que agrupa múltiplos itens com diferentes estratégias de seleção. Permite criar combos, bundles, kits customizados onde o cliente pode escolher quais itens incluir, remover ou em que quantidade.
{
"id": "698b8a825eaf8de7c5af8de7",
"name": "Kit Completo de Verão",
"alias": "kit-verao-001",
"caption": "Tudo o que você precisa para o verão",
"active": true,
"published": true,
"hideIndividualPricesInWholeList": false,
"community": "test",
"formId": null,
"createdAt": "2026-02-10T19:44:02.328Z",
"updatedAt": "2026-02-12T20:46:11.133Z",
"items": [
{
"itemId": "698b8a805eaf8de7c5af1cb9",
"quantity": 1,
"required": true,
"defaultQuantity": 1,
"selectedSkus": [],
"allSkus": true,
"strategy": "required",
"linkingGroup": {
"name": "Essencial",
"icon": "star",
"color": "gold",
"links": []
}
},
{
"itemId": "698b8a805eaf8de7c5af1cba",
"quantity": 1,
"required": false,
"defaultQuantity": 1,
"selectedSkus": ["sku-preto", "sku-azul", "sku-vermelho"],
"allSkus": false,
"strategy": "optional",
"linkingGroup": {
"name": "Complemento",
"icon": "bag",
"color": "blue",
"links": []
}
},
{
"itemId": "698b8a805eaf8de7c5af1cbb",
"quantity": 0,
"required": false,
"defaultQuantity": 0,
"selectedSkus": [],
"allSkus": true,
"strategy": "free-choice",
"linkingGroup": null
}
],
"gallery": [
{
"url": "https://cdn.layers.digital/uploads/.../kit-verao.jpg",
"path": "/uploads/.../kit-verao.jpg",
"mime": "image/jpeg",
"width": 1200,
"height": 800,
"size": 156780,
"name": "kit-verao.jpg",
"orientation": null
}
],
"tags": ["kit", "promoção", "verão"],
"categories": ["bundles", "combos"],
"content": [
{
"kind": "markdown",
"markdown": "# Kit Completo de Verão\n\nTudo preparado para aproveitar melhor seus dias quentes..."
}
],
"stats": {
"channels": []
}
}| Campo | Tipo | Descrição |
|---|---|---|
id | string | ID único do kit |
name | string | Nome do kit (3-100 caracteres, obrigatório) |
alias | string | null | ID customizado único do kit. Caso não informado, null |
caption | string | null | Descrição curta do kit (0-100 caracteres). Caso não informada, null |
active | boolean | Indica se o kit está ativo (padrão: true) |
published | boolean | Indica se o kit está publicado e visível (padrão: true) |
hideIndividualPricesInWholeList | boolean | Se true, oculta preços individuais dos itens, mostrando apenas o preço total do kit (padrão: false) |
community | string | Comunidade (tenant) do kit |
formId | string | null | ID do formulário customizado a preencher na compra do kit. Caso não informado, null |
items | array<object> | Lista de itens que compõem o kit (ver abaixo) |
gallery | array<object> | Array de imagens do kit (primeira é a principal) |
tags | array<string> | Tags descritivas do kit |
categories | array<string> | Categorias do kit |
content | array<object> | Conteúdo descritivo em Markdown |
stats | object | Estatísticas de vendas e dados por canal |
createdAt | string (ISO 8601) | Data e hora de criação |
updatedAt | string (ISO 8601) | Data e hora da última atualização |
O comportamento de cada item no kit é definido pela sua estratégia, que é derivada automaticamente dos campos required e quantity:
| Estratégia | Condição | required | quantity | defaultQuantity | Comportamento |
|---|---|---|---|---|---|
required | required = true | ✅ true | ≥ 1 | ≥ 1 | Item obrigatório no kit. Cliente não pode remover. Quantidade fixa. |
optional | required = false, quantity > 0 | ❌ false | ≥ 1 | ≥ 1 | Item opcional com quantidade fixa. Cliente pode aceitar ou recusar. |
free-choice | required = false, quantity = 0 | ❌ false | 0 | 0 | Cliente escolhe livremente a quantidade (0 a N unidades). |
Required - Item Obrigatório:
{
"itemId": "...",
"quantity": 1,
"required": true,
"defaultQuantity": 1,
"strategy": "required"
}Optional - Item Opcional com Quantidade Fixa:
{
"itemId": "...",
"quantity": 2,
"required": false,
"defaultQuantity": 2,
"strategy": "optional"
}Free-Choice - Seleção Livre:
{
"itemId": "...",
"quantity": 0,
"required": false,
"defaultQuantity": 0,
"strategy": "free-choice"
}items (ListItem[]) Lista de itens que compõem o kit. Cada item tem sua própria estratégia e configurações.
"items": [
{
"itemId": "698b8a805eaf8de7c5af1cb9",
"quantity": 1,
"required": true,
"defaultQuantity": 1,
"selectedSkus": [],
"allSkus": true,
"strategy": "required",
"linkingGroup": {
"name": "Essencial",
"icon": "star",
"color": "gold",
"links": []
}
}
]| Campo | Tipo | Descrição |
|---|---|---|
itemId | string | ID do item associado (obrigatório) |
quantity | integer | Quantidade fixa deste item no kit (padrão: 1). Mín: 0 |
required | boolean | Indica se o item é obrigatório no kit (padrão: false) |
defaultQuantity | integer | Quantidade padrão pré-selecionada para este item (padrão: 0). Mín: 0 |
selectedSkus | array<string> | Array de IDs de SKUs permitidos deste item. Se vazio, allSkus muda para true |
allSkus | boolean | Se true, todos os SKUs do item são permitidos. Se false, apenas selectedSkus (padrão: true) |
strategy | string | Virtual (derivado) - Estratégia automaticamente derivada: required, optional ou free-choice |
linkingGroup | object | null | Informações de agrupamento visual (opcional). Caso não informado, null |
required = true força quantity >= 1 e defaultQuantity >= 1required = false com quantity > 0 cria estratégia optionalrequired = false com quantity = 0 cria estratégia free-choiceitemId no kitselectedSkus é modificado, allSkus é automaticamente ajustadoitems[].linkingGroup (ListItemLinkingGroup) Informações opcionais de agrupamento visual dos itens do kit. Usado para organizar e destacar itens relacionados na interface.
"linkingGroup": {
"name": "Essencial",
"icon": "star",
"color": "gold",
"links": []
}| Campo | Tipo | Descrição |
|---|---|---|
name | string | Nome do grupo. Ex: Essencial, Complementos, Acessórios |
icon | string | Ícone representativo. Valores possíveis: bag, users, gift, archive, check, star |
color | string | Cor associada ao grupo. Ex: gold, blue, red, green |
links | array<string> | Array de IDs de itens relacionados (para agrupamento avançado) |
| Ícone | Uso |
|---|---|
bag | Compras, produtos gerais |
users | Grupo, equipe, pessoas |
gift | Presentes, brindes |
archive | Armazenamento, arquivo |
check | Confirmação, completado |
star | Destaque, favorito, essencial |
gallery (Media[]) Array de imagens do kit. A primeira imagem é sempre a principal/capa.
"gallery": [
{
"url": "https://cdn.layers.digital/uploads/.../kit-1.jpg",
"path": "/uploads/.../kit-1.jpg",
"mime": "image/jpeg",
"width": 1200,
"height": 800,
"size": 156780,
"name": "kit-1.jpg",
"orientation": null
}
]| Campo | Tipo | Descrição |
|---|---|---|
url | string | URL pública da imagem |
path | string | Caminho interno da imagem |
mime | string | Tipo MIME. Ex: image/jpeg, image/png |
width | integer | null | Largura em pixels. Caso não informada, null |
height | integer | null | Altura em pixels. Caso não informada, null |
size | integer | Tamanho do arquivo em bytes |
name | string | Nome do arquivo |
orientation | string | null | Orientação. Caso não informada, null |
content (ItemContent[]) Conteúdo descritivo do kit em Markdown ou outro formato.
"content": [
{
"kind": "markdown",
"markdown": "# Kit Completo\n\n## O que inclui:\n\n- Item 1\n- Item 2 (opcional)\n- Item 3 (escolha a quantidade)"
}
]| Campo | Tipo | Descrição |
|---|---|---|
kind | string | Tipo de conteúdo. Valor padrão: markdown |
markdown | string | Conteúdo em formato Markdown |
stats (EntityStats) Estatísticas e metadados de vendas do kit agrupados por canal.
"stats": {
"channels": [
{
"_id": "698b8a805eaf8de7c5af1cd2",
"sales": 42,
"revenue": {
"amount": 2094000,
"currency": "BRL"
}
}
]
}| Campo | Tipo | Descrição |
|---|---|---|
channels | array<object> | Array de estatísticas por canal |
channels[._id | string | ID do canal |
channels[].sales | integer | Total de vendas neste canal |
channels[].revenue.amount | integer | Receita em centavos |
channels[].revenue.currency | string | Moeda ISO 4217 |
| Flag | Significado |
|---|---|
active: true, published: true | Kit visível e ativo (pronto para venda) |
active: true, published: false | Kit ativo mas oculto (pausado) |
active: false, published: false | Kit inativo/arquivado (todos os KitLinks também ficarão inativos) |
{
"name": "Combo Promocional",
"items": [
{ "itemId": "...", "required": true, "quantity": 1 },
{ "itemId": "...", "required": true, "quantity": 1 },
{ "itemId": "...", "required": true, "quantity": 1 }
]
}Descrição: Todos os itens são obrigatórios, cliente compra o combo inteiro por um preço especial.
{
"name": "Bundle de Verão",
"items": [
{ "itemId": "...", "required": true, "quantity": 1 },
{ "itemId": "...", "required": false, "quantity": 1 },
{ "itemId": "...", "required": false, "quantity": 1 }
]
}Descrição: Item obrigatório mais itens opcionais que cliente pode escolher incluir.
{
"name": "Construa Seu Kit",
"items": [
{ "itemId": "...", "required": false, "quantity": 0 },
{ "itemId": "...", "required": false, "quantity": 0 },
{ "itemId": "...", "required": false, "quantity": 0 }
]
}Descrição: Cliente escolhe livremente quais items incluir e em que quantidade.
| Aspecto | Item | Kit |
|---|---|---|
| Propósito | Produto individual | Agrupamento de produtos |
| SKUs | Variantes do mesmo produto | Múltiplos itens diferentes |
| Preço | Por SKU | Total do kit (pode ter desconto) |
| Customização | Atributos (cor, tamanho) | Seleção de items |
| Validação | Tipo de item (product, recurrence, gift) | Estratégia de seleção (required, optional, free-choice) |