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-11Pmostra 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:
- Estrazione caratteristiche: Estrae caratteristiche per phrase mappings
- Generazione filtri: Crea filtri per filter extraction
- Corrispondenza prodotto: Abbina query a prodotti in base alle caratteristiche
- Pagine query: Genera pagine per combinazioni di caratteristiche
Vedi SEO Pipeline Overview per i dettagli.
Riferimenti
Concetti Tecnici
-
Stock Keeping Unit (SKU) - Wikipedia
-
Bill of Materials (BOM) - Wikipedia
Articoli Correlati
-
productdb.json come Fonte Unica di Verità - Struttura del database prodotti
-
Estrazione e Aggregazione delle Caratteristiche - Come vengono estratte le caratteristiche
-
Come la Struttura SKU Abilita Pagine Uniche - Vantaggi SEO
-
Mappature Frasi-Filtri - Utilizzo delle caratteristiche per i filtri
-
Panoramica della Pipeline SEO - Architettura completa della pipeline
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.