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-11P mostra 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:

  1. Extração de características: Extrai características para mapeamentos de frases
  2. Geração de filtros: Cria filtros para extração de filtros
  3. Correspondência de produtos: Relaciona consultas a produtos por características
  4. 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

Artigos Relacionados

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.


← Voltar ao Índice de Documentação