Estrutura de SKU: Arquitetura de Componentes Separados por Hífen
Este artigo explica como nosso sistema de SKU (Unidade de Manutenção de Estoque) usa uma estrutura separada por hífen para identificar exclusivamente cada configuração de produto, permitindo uma poderosa extração de características e filtragem.
O Problema: Identificar Configurações de Produto
Um mini PC pode ter milhares de configurações:
-
Chassi: Treo, S, H (diferentes fatores de forma)
-
Placa-mãe: N100, i5-1335U, i7-1355U (diferentes processadores)
-
RAM: 4GB, 8GB, 16GB, 32GB, 64GB
-
Armazenamento: 128GB, 256GB, 512GB, 1TB, 2TB
-
Adaptador: 2H (2 HDMI), 2D (2 DisplayPort), 1H1D (1 HDMI + 1 DisplayPort)
-
WiFi: W6 (WiFi 6), W6E (WiFi 6E), None
-
Sistema Operacional: 11P (Windows 11 Pro), U (Ubuntu), DOS (FreeDOS)
-
Acessórios: Teclado, mouse, suporte VESA, etc.
Com 3 chassis × 10 placas × 5 RAM × 5 armazenamentos × 5 adaptadores × 3 WiFi × 3 SO = 33.750 configurações possíveis, precisamos de uma maneira sistemática de identificar cada uma.
A Solução: SKU Separado por Hífen
Usamos uma estrutura separada por hífen onde cada posição representa uma categoria de componente:
Treo-N100-8-256-2H-W6-11P
Isso cria um identificador único para cada configuração.
Divisão do SKU
graph LR
SKU[Treo-N100-8-256-2H-W6-11P]
SKU --> C[Treo
Chassi]
SKU --> B[N100
Placa/CPU]
SKU --> R[8
RAM GB]
SKU --> F[256
Armazenamento GB]
SKU --> A[2H
Adaptador]
SKU --> W[W6
WiFi 6]
SKU --> O[11P
Windows 11 Pro]Sequência das Partes
O SKU segue uma sequência fixa definida em código:
part_sequence = [
Categories.CHASSIS, # Posição 0
Categories.BOARD, # Posição 1
# ... (detalhes de implementação omitidos)
Cada SKU deve ter pelo menos os primeiros 7 componentes (Chassi até SO). Acessórios são opcionais.
Categorias de Componentes
1. Chassi
O gabinete físico e fator de forma:
-
Treo: Chassi mais recente de mini PC (compacto, design moderno)
-
S: Fator de forma pequeno (desktop compacto)
-
H: Fator de forma padrão (desktop tradicional)
O chassi determina:
-
Dimensões físicas
-
Opções de montagem (VESA, desktop)
-
Projeto térmico (sem ventilador vs com ventilador)
-
Layout de portas
2. Placa-mãe
A placa-mãe com processador:
-
N100: Intel N100 (4 núcleos, 3.4GHz, 6W TDP)
-
N150: Intel N150 (4 núcleos, 3.6GHz, 6W TDP)
-
i5-1335U: Intel Core i5 13ª Geração (10 núcleos, 4.6GHz, 15W TDP)
-
i7-1355U: Intel Core i7 13ª Geração (10 núcleos, 5.0GHz, 15W TDP)
A placa determina:
-
Geração, série e modelo do processador
-
Contagem de núcleos
-
Frequência máxima
-
Tamanho do cache
-
Gráficos integrados
3. RAM
Capacidade de memória principal:
-
4: 4GB DDR4
-
8: 8GB DDR4
-
16: 16GB DDR4
-
32: 32GB DDR4
-
64: 64GB DDR4
A RAM é especificada em GB sem a unidade.
4. Armazenamento
Capacidade de armazenamento SSD:
-
128: 128GB SSD
-
256: 256GB SSD
-
512: 512GB SSD
-
1024: 1TB SSD (1024GB)
-
2048: 2TB SSD (2048GB)
O armazenamento é especificado em GB sem a unidade.
5. Adaptador
Configuração de saída de vídeo:
-
2H: 2× portas HDMI
-
2D: 2× DisplayPort
-
1H1D: 1× HDMI + 1× DisplayPort
-
1H1V: 1× HDMI + 1× VGA
-
3H: 3× portas HDMI
O adaptador determina as saídas de vídeo disponíveis.
6. WiFi
Conectividade sem fio:
-
W6: WiFi 6 (802.11ax) + Bluetooth 5.2
-
W6E: WiFi 6E (802.11ax 6GHz) + Bluetooth 5.2
-
None: Sem wireless (apenas Ethernet)
7. Sistema Operacional
Sistema operacional:
-
11P: Microsoft Windows 11 Pro
-
U: Ubuntu Linux 24.04 LTS
-
DOS: FreeDOS (sem SO)
-
Thinux: Thinvent® Thinux™ Embedded Linux
8. Acessórios (Opcional)
Componentes adicionais:
-
KM: Combo Teclado + Mouse
-
MK: Teclado Mecânico
-
VESA: Suporte para montagem VESA
-
Stand: Suporte ajustável
Múltiplos acessórios podem ser combinados: KM-VESA
Validação de SKU
Nem todas as combinações são válidas. Validamos SKUs usando regras de compatibilidade:
Função de Verificação de SKU
def check_sku(sku: str) -> bool:
partids = sku.split("-")
if len(partids) < len(part_sequence):
# ... (detalhes de implementação omitidos)
Restrições de Compatibilidade
Os componentes podem especificar com quais outros componentes são compatíveis:
Exemplo: O chassi Treo permite placas específicas
{
"Treo": {
"allows": {
"Board": ["N100", "N150", "i5-1335U"],
"RAM": ["4", "8", "16", "32"],
"Adapter": ["2H", "1H1D"]
}
}
}
Isso impede combinações inválidas como "Treo-i7-64-2048-3H" (Treo não suporta i7 ou adaptador 3H).
Expansão de SKU
Convertemos SKUs em nomes legíveis por humanos:
def expand_sku(sku: str) -> str:
part_ids = sku.split("-")
part_names = [
productdb[part_sequence[i].value][part_id]["external"]
# ... (detalhes de implementação omitidos)
]
Exemplo:
Entrada: Treo-N100-8-256-2H-W6-11P
Saída: Treo Mini PC, Intel N100, 8GB DDR4, 256GB SSD, 2× HDMI, WiFi 6, Windows 11 Pro
O campo external contém o nome voltado para o cliente para cada componente.
Extração de Características
A estrutura do SKU permite a extração automática de características:
Sequência de Características
Definimos uma sequência de características para extrair:
feature_sequence = {
"Generation": {"Unit": "", "Heading": "Processing"},
"Series": {"Unit": "", "Heading": "Processing"},
# ... (detalhes de implementação omitidos)
Cada característica tem:
-
Unit: Unidade de medida (GB, GHz, Mbps)
-
Heading: Categoria para agrupamento (Processamento, Vídeo, Conectividade)
Extraindo Características
Para cada componente no SKU, extraímos suas características:
# Placa: N100
{
"Generation": "12th",
# ... (detalhes de implementação omitidos)
Essas características são agregadas em todos os componentes para criar o conjunto completo de características do produto.
Benefícios Desta Estrutura
1. Identificação Única
Cada configuração tem um SKU único. Sem ambiguidade.
2. Legível por Humanos
O SKU é legível por humanos:
-
Treo-N100-8-256-2H-W6-11Pmostra claramente a configuração -
Não é necessário consultar um banco de dados para entender o que é
3. Classificável
SKUs se classificam naturalmente:
-
Treo-N100-8-256-2H-W6-11P -
Treo-N100-16-512-2H-W6-11P -
Treo-i5-16-512-2H-W6-11P
Classificar por SKU agrupa configurações semelhantes.
4. Filtrável
Podemos filtrar por qualquer componente:
-
Todos os produtos Treo:
Treo-* -
Todos os produtos N100:
*-N100-* -
Todos os produtos 16GB:
*-16-*
5. Extração de Características
A estrutura permite a extração automática de características para:
-
Páginas de produto (exibir especificações)
-
Filtros de busca (filtrar por RAM, armazenamento, etc.)
-
Tabelas de comparação (comparar características lado a lado)
6. Cálculo de Custo
Podemos calcular o custo somando os custos dos componentes:
def calculate_sku_cost(sku: str) -> float:
# ... (detalhes de implementação omitidos)
return total_cost
7. Geração de URL
SKUs mapeiam diretamente para URLs de produto:
SKU: Treo-N100-8-256-2H-W6-11P
URL: /p/Treo-N100-8-256-2H-W6-11P
Nenhum slug de URL separado é necessário.
Itens Compostos
Alguns componentes são compostos (feitos de múltiplas partes):
Exemplo: Placa-mãe com componentes integrados
{
"N100": {
"external": "Intel N100",
# ... (detalhes de implementação omitidos)
Isso permite:
-
Lista de Materiais (BOM): Listar todos os componentes necessários
-
Cálculo de custo: Somar custos dos constituintes
-
Rastreamento de inventário: Acompanhar o uso de componentes
SKUs de Peça Única
Nem todos os SKUs são separados por hífen. Peças únicas também podem ser SKUs:
-
N100(apenas a placa) -
Treo(apenas o chassi) -
KM(teclado + mouse)
Estes são usados para:
-
Peças de reposição
-
Atualizações
-
Acessórios
A função is_single_part() verifica se um SKU é uma peça única ou um produto completo.
Integração com o Pipeline de SEO
A estrutura do SKU alimenta o pipeline de SEO:
- Extração de características: Extrai características para mapeamentos de frases
- Geração de filtros: Cria filtros para extração de filtros
- Correspondência de produtos: Relaciona consultas a produtos por características
- Páginas de consulta: Gera páginas para combinações de características
Veja Visão Geral do Pipeline de SEO para detalhes.
Referências
Conceitos Técnicos
-
Unidade de Manutenção de Estoque (SKU) - Wikipedia
-
Lista de Materiais (BOM) - Wikipedia
Artigos Relacionados
-
productdb.json como Fonte Única da Verdade - Estrutura do banco de dados de produtos
-
Extração e Agregação de Características - Como as características são extraídas
-
Como a Estrutura de SKU Permite Páginas Únicas - Benefícios de SEO
-
Mapeamentos de Frase para Filtro - Usando características para filtros
-
Visão Geral do Pipeline de SEO - Arquitetura completa do pipeline
Resumo
Nosso sistema de SKU usa uma estrutura separada por hífen para identificar exclusivamente configurações de produto:
-
Estrutura:
Chassi-Placa-RAM-Armazenamento-Adaptador-WiFi-SO-Acessórios -
Exemplo:
Treo-N100-8-256-2H-W6-11P -
Benefícios:
-
Identificação única (33.750+ configurações)
-
Legível por humanos (não requer consulta)
-
Classificável (ordenação natural)
-
Filtrável (por qualquer componente)
-
Extração de características (automática)
-
Cálculo de custo (soma das partes)
-
Geração de URL (mapeamento direto)
Validação:
-
Verificação de existência do componente
-
Restrições de compatibilidade
-
Requisito de comprimento mínimo
Expansão:
-
SKU → Nome legível por humanos
-
Componente → Características
-
Características → Filtros
Esta estrutura é a base do nosso catálogo de produtos, permitindo uma busca, filtragem e otimização de SEO poderosas.