Struttura SKU: Architettura a Componenti Separati da Trattino

Questo articolo spiega come il nostro sistema SKU (Stock Keeping Unit) utilizza una struttura separata da trattini per identificare in modo univoco ogni configurazione di prodotto, consentendo al contempo una potente estrazione di caratteristiche e filtraggio.

Il Problema: Identificare le Configurazioni di Prodotto

Un mini PC può avere migliaia di configurazioni:

  • Chassis: Treo, S, H (diversi fattori di forma)

  • Scheda madre: N100, i5-1335U, i7-1355U (diversi processori)

  • RAM: 4GB, 8GB, 16GB, 32GB, 64GB

  • Memoria Flash: 128GB, 256GB, 512GB, 1TB, 2TB

  • Adattatore: 2H (2 HDMI), 2D (2 DisplayPort), 1H1D (1 HDMI + 1 DisplayPort)

  • WiFi: W6 (WiFi 6), W6E (WiFi 6E), None

  • Sistema Operativo: 11P (Windows 11 Pro), U (Ubuntu), DOS (FreeDOS)

  • Accessori: Tastiera, mouse, supporto VESA, ecc.

Con 3 chassis × 10 schede madri × 5 RAM × 5 memorie flash × 5 adattatori × 3 WiFi × 3 OS = 33.750 configurazioni possibili, abbiamo bisogno di un modo sistematico per identificarne ciascuna.

La Soluzione: SKU Separato da Trattini

Utilizziamo una struttura separata da trattini in cui ogni posizione rappresenta una categoria di componente:

Treo-N100-8-256-2H-W6-11P

Questo crea un identificatore univoco per ogni configurazione.

Scomposizione dello SKU

graph LR
    SKU[Treo-N100-8-256-2H-W6-11P]
    SKU --> C[Treo
Chassis] SKU --> B[N100
Scheda/CPU] SKU --> R[8
RAM GB] SKU --> F[256
Flash GB] SKU --> A[2H
Adattatore] SKU --> W[W6
WiFi 6] SKU --> O[11P
Windows 11 Pro]

Sequenza delle Parti

Lo SKU segue una sequenza fissa definita nel codice:

part_sequence = [
    Categories.CHASSIS,      # Posizione 0
    Categories.BOARD,        # Posizione 1
# ... (dettagli implementativi omessi)

Ogni SKU deve avere almeno i primi 7 componenti (da Chassis a OS). Gli accessori sono opzionali.

Categorie dei Componenti

1. Chassis

Il contenitore fisico e il fattore di forma:

  • Treo: Chassis mini PC più recente (design compatto e moderno)

  • S: Fattore di forma piccolo (desktop compatto)

  • H: Fattore di forma standard (desktop tradizionale)

Il chassis determina:

  • Dimensioni fisiche

  • Opzioni di montaggio (VESA, desktop)

  • Progettazione termica (senza ventola vs raffreddato a ventola)

  • Layout delle porte

2. Scheda Madre (Board)

La scheda madre con processore:

  • N100: Intel N100 (4 core, 3.4GHz, TDP 6W)

  • N150: Intel N150 (4 core, 3.6GHz, TDP 6W)

  • i5-1335U: Intel Core i5 13a Generazione (10 core, 4.6GHz, TDP 15W)

  • i7-1355U: Intel Core i7 13a Generazione (10 core, 5.0GHz, TDP 15W)

La scheda madre determina:

  • Generazione, serie, modello del processore

  • Numero di core

  • Frequenza massima

  • Dimensione della cache

  • Grafica integrata

3. RAM

Capacità della memoria principale:

  • 4: 4GB DDR4

  • 8: 8GB DDR4

  • 16: 16GB DDR4

  • 32: 32GB DDR4

  • 64: 64GB DDR4

La RAM è specificata in GB senza l'unità di misura.

4. Memoria Flash (Flash)

Capacità di archiviazione SSD:

  • 128: SSD 128GB

  • 256: SSD 256GB

  • 512: SSD 512GB

  • 1024: SSD 1TB (1024GB)

  • 2048: SSD 2TB (2048GB)

La memoria flash è specificata in GB senza l'unità di misura.

5. Adattatore (Adapter)

Configurazione delle uscite video:

  • 2H: 2× porte HDMI

  • 2D: 2× DisplayPort

  • 1H1D: 1× HDMI + 1× DisplayPort

  • 1H1V: 1× HDMI + 1× VGA

  • 3H: 3× porte HDMI

L'adattatore determina le uscite video disponibili.

6. WiFi

Connettività wireless:

  • W6: WiFi 6 (802.11ax) + Bluetooth 5.2

  • W6E: WiFi 6E (802.11ax 6GHz) + Bluetooth 5.2

  • None: Senza wireless (solo Ethernet)

7. Sistema Operativo (OS)

Sistema operativo:

  • 11P: Microsoft Windows 11 Pro

  • U: Ubuntu Linux 24.04 LTS

  • DOS: FreeDOS (nessun OS)

  • Thinux: Thinvent® Thinux™ Embedded Linux

8. Accessori (Opzionali)

Componenti aggiuntivi:

  • KM: Combo tastiera + mouse

  • MK: Tastiera meccanica

  • VESA: Staffa per montaggio VESA

  • Stand: Supporto regolabile

Più accessori possono essere combinati: KM-VESA

Validazione dello SKU

Non tutte le combinazioni sono valide. Validiamo gli SKU utilizzando regole di compatibilità:

Funzione di Controllo SKU

def check_sku(sku: str) -> bool:
    partids = sku.split("-")
    if len(partids) < len(part_sequence):
# ... (dettagli implementativi omessi)

Vincoli di Compatibilità

I componenti possono specificare con quali altri componenti sono compatibili:

Esempio: il chassis Treo consente specifiche schede madri

{
  "Treo": {
    "allows": {
      "Board": ["N100", "N150", "i5-1335U"],
      "RAM": ["4", "8", "16", "32"],
      "Adapter": ["2H", "1H1D"]
    }
  }
}

Ciò impedisce combinazioni non valide come "Treo-i7-64-2048-3H" (Treo non supporta i7 o l'adattatore 3H).

Espansione dello SKU

Convertiamo gli SKU in nomi leggibili dall'uomo:

def expand_sku(sku: str) -> str:
    part_ids = sku.split("-")
    part_names = [
        productdb[part_sequence[i].value][part_id]["external"] 
# ... (dettagli implementativi omessi)        
    ]

Esempio:

Input:  Treo-N100-8-256-2H-W6-11P
Output: Mini PC Treo, Intel N100, 8GB DDR4, SSD 256GB, 2× HDMI, WiFi 6, Windows 11 Pro

Il campo external contiene il nome rivolto al cliente per ciascun componente.

Estrazione delle Caratteristiche

La struttura SKU consente l'estrazione automatica delle caratteristiche:

Sequenza delle Caratteristiche

Definiamo una sequenza di caratteristiche da estrarre:

feature_sequence = {
    "Generation": {"Unit": "", "Heading": "Processing"},
    "Series": {"Unit": "", "Heading": "Processing"},
# ... (dettagli implementativi omessi)

Ogni caratteristica ha:

  • Unit: Unità di misura (GB, GHz, Mbps)

  • Heading: Categoria per il raggruppamento (Processing, Display, Connectivity)

Estrazione delle Caratteristiche

Per ogni componente nello SKU, estraiamo le sue caratteristiche:

# Scheda madre: N100
{
    "Generation": "12th",
# ... (dettagli implementativi omessi)

Queste caratteristiche vengono aggregate tra tutti i componenti per creare il set completo di caratteristiche del prodotto.

Vantaggi di Questa Struttura

1. Identificazione Univoca

Ogni configurazione ha uno SKU univoco. Nessuna ambiguità.

2. Leggibilità Umana

Lo SKU è leggibile dagli esseri umani:

  • Treo-N100-8-256-2H-W6-11P mostra chiaramente la configurazione

  • Non è necessario consultare un database per capire di cosa si tratta

3. Ordinabile

Gli SKU si ordinano naturalmente:

  • Treo-N100-8-256-2H-W6-11P

  • Treo-N100-16-512-2H-W6-11P

  • Treo-i5-16-512-2H-W6-11P

Ordinando per SKU, configurazioni simili vengono raggruppate insieme.

4. Filtrabile

Possiamo filtrare per qualsiasi componente:

  • Tutti i prodotti Treo: Treo-*

  • Tutti i prodotti N100: *-N100-*

  • Tutti i prodotti da 16GB: *-16-*

5. Estrazione delle Caratteristiche

La struttura consente l'estrazione automatica delle caratteristiche per:

  • Pagine prodotto (visualizzazione specifiche)

  • Filtri di ricerca (filtra per RAM, archiviazione, ecc.)

  • Tabelle di confronto (confronta caratteristiche affiancate)

6. Calcolo del Costo

Possiamo calcolare il costo sommando i costi dei componenti:

def calculate_sku_cost(sku: str) -> float:
# ... (dettagli implementativi omessi)
    return total_cost

7. Generazione URL

Gli SKU si mappano direttamente agli URL dei prodotti:

SKU:  Treo-N100-8-256-2H-W6-11P
URL:  /p/Treo-N100-8-256-2H-W6-11P

Non è necessario uno slug URL separato.

Articoli Compositi

Alcuni componenti sono compositi (costituiti da più parti):

Esempio: Scheda madre con componenti integrati

{
  "N100": {
    "external": "Intel N100",
# ... (dettagli implementativi omessi)

Ciò consente:

  • Distinta Base (BOM): Elencare tutti i componenti necessari

  • Calcolo del costo: Sommare i costi dei costituenti

  • Tracciamento inventario: Monitorare l'utilizzo dei componenti

SKU a Parte Singola

Non tutti gli SKU sono separati da trattini. Anche le parti singole possono essere SKU:

  • N100 (solo la scheda madre)

  • Treo (solo il chassis)

  • KM (tastiera + mouse)

Questi sono utilizzati per:

  • Parti di ricambio

  • Aggiornamenti

  • Accessori

La funzione is_single_part() verifica se uno SKU è una parte singola o un prodotto completo.

Integrazione con la Pipeline SEO

La struttura SKU alimenta la pipeline SEO:

  1. Estrazione caratteristiche: Estrae caratteristiche per phrase mappings
  2. Generazione filtri: Crea filtri per filter extraction
  3. Corrispondenza prodotto: Abbina query a prodotti in base alle caratteristiche
  4. Pagine query: Genera pagine per combinazioni di caratteristiche

Vedi SEO Pipeline Overview per i dettagli.

Riferimenti

Concetti Tecnici

Articoli Correlati

Riepilogo

Il nostro sistema SKU utilizza una struttura separata da trattini per identificare in modo univoco le configurazioni di prodotto:

  • Struttura: Chassis-SchedaMadre-RAM-Flash-Adattatore-WiFi-OS-Accessori

  • Esempio: Treo-N100-8-256-2H-W6-11P

  • Vantaggi:

  • Identificazione univoca (33.750+ configurazioni)

  • Leggibilità umana (nessuna ricerca necessaria)

  • Ordinabilità (ordinamento naturale)

  • Filtrabilità (per qualsiasi componente)

  • Estrazione caratteristiche (automatica)

  • Calcolo del costo (somma delle parti)

  • Generazione URL (mappatura diretta)

Validazione:

  • Controllo esistenza componente

  • Vincoli di compatibilità

  • Requisito di lunghezza minima

Espansione:

  • SKU → Nome leggibile dall'uomo

  • Componente → Caratteristiche

  • Caratteristiche → Filtri

Questa struttura è la base del nostro catalogo prodotti, abilitando potenti funzionalità di ricerca, filtraggio e ottimizzazione SEO.


← Torna all'Indice della Documentazione