SKU-Struktur: Bindestrich-getrennte Komponentenarchitektur
Dieser Artikel erklärt, wie unser SKU-System (Stock Keeping Unit) eine bindestrich-getrennte Struktur verwendet, um jede Produktkonfiguration eindeutig zu identifizieren und gleichzeitig leistungsstarke Merkmalsextraktion und Filterung zu ermöglichen.
Das Problem: Identifizierung von Produktkonfigurationen
Ein Mini-PC kann Tausende von Konfigurationen haben:
-
Chassis: Treo, S, H (verschiedene Formfaktoren)
-
Board: N100, i5-1335U, i7-1355U (verschiedene Prozessoren)
-
RAM: 4GB, 8GB, 16GB, 32GB, 64GB
-
Flash: 128GB, 256GB, 512GB, 1TB, 2TB
-
Adapter: 2H (2 HDMI), 2D (2 DisplayPort), 1H1D (1 HDMI + 1 DisplayPort)
-
WiFi: W6 (WiFi 6), W6E (WiFi 6E), None
-
OS: 11P (Windows 11 Pro), U (Ubuntu), DOS (FreeDOS)
-
Zubehör: Tastatur, Maus, VESA-Halterung, etc.
Bei 3 Chassis × 10 Boards × 5 RAM × 5 Flash × 5 Adapter × 3 WiFi × 3 OS = 33.750 möglichen Konfigurationen benötigen wir eine systematische Methode, um jede einzelne zu identifizieren.
Die Lösung: Bindestrich-getrennte SKU
Wir verwenden eine bindestrich-getrennte Struktur, bei der jede Position eine Komponentenkategorie repräsentiert:
Treo-N100-8-256-2H-W6-11P
Dies erzeugt einen eindeutigen Identifikator für jede Konfiguration.
SKU-Aufschlüsselung
graph LR
SKU[Treo-N100-8-256-2H-W6-11P]
SKU --> C[Treo
Chassis]
SKU --> B[N100
Board/CPU]
SKU --> R[8
RAM GB]
SKU --> F[256
Flash GB]
SKU --> A[2H
Adapter]
SKU --> W[W6
WiFi 6]
SKU --> O[11P
Windows 11 Pro]Teile-Sequenz
Die SKU folgt einer festen, im Code definierten Sequenz:
part_sequence = [
Categories.CHASSIS, # Position 0
Categories.BOARD, # Position 1
# ... (Implementierungsdetails ausgelassen)
Jede SKU muss mindestens die ersten 7 Komponenten haben (Chassis bis OS). Zubehör ist optional.
Komponenten-Kategorien
1. Chassis
Das physikalische Gehäuse und der Formfaktor:
-
Treo: Neuestes Mini-PC-Chassis (kompakt, modernes Design)
-
S: Small Form Factor (kompakter Desktop)
-
H: Standard-Formfaktor (traditioneller Desktop)
Das Chassis bestimmt:
-
Physikalische Abmessungen
-
Montageoptionen (VESA, Desktop)
-
Thermisches Design (passiv vs. aktiv gekühlt)
-
Anschlusslayout
2. Board
Das Mainboard mit Prozessor:
-
N100: Intel N100 (4 Kerne, 3,4 GHz, 6W TDP)
-
N150: Intel N150 (4 Kerne, 3,6 GHz, 6W TDP)
-
i5-1335U: Intel Core i5 13. Generation (10 Kerne, 4,6 GHz, 15W TDP)
-
i7-1355U: Intel Core i7 13. Generation (10 Kerne, 5,0 GHz, 15W TDP)
Das Board bestimmt:
-
Prozessor-Generation, Serie, Modell
-
Kernanzahl
-
Max. Frequenz
-
Cache-Größe
-
Integrierte Grafik
3. RAM
Hauptspeicherkapazität:
-
4: 4GB DDR4
-
8: 8GB DDR4
-
16: 16GB DDR4
-
32: 32GB DDR4
-
64: 64GB DDR4
RAM wird in GB ohne Einheit angegeben.
4. Flash
SSD-Speicherkapazität:
-
128: 128GB SSD
-
256: 256GB SSD
-
512: 512GB SSD
-
1024: 1TB SSD (1024GB)
-
2048: 2TB SSD (2048GB)
Flash wird in GB ohne Einheit angegeben.
5. Adapter
Display-Ausgangskonfiguration:
-
2H: 2× HDMI-Anschlüsse
-
2D: 2× DisplayPort
-
1H1D: 1× HDMI + 1× DisplayPort
-
1H1V: 1× HDMI + 1× VGA
-
3H: 3× HDMI-Anschlüsse
Der Adapter bestimmt die verfügbaren Display-Ausgänge.
6. WiFi
Drahtlose Konnektivität:
-
W6: WiFi 6 (802.11ax) + Bluetooth 5.2
-
W6E: WiFi 6E (802.11ax 6GHz) + Bluetooth 5.2
-
None: Keine Drahtlosverbindung (nur Ethernet)
7. OS
Betriebssystem:
-
11P: Microsoft Windows 11 Pro
-
U: Ubuntu Linux 24.04 LTS
-
DOS: FreeDOS (kein OS)
-
Thinux: Thinvent® Thinux™ Embedded Linux
8. Zubehör (Optional)
Zusätzliche Komponenten:
-
KM: Tastatur + Maus Kombo
-
MK: Mechanische Tastatur
-
VESA: VESA-Halterung
-
Stand: Verstellbarer Standfuß
Mehrere Zubehörteile können kombiniert werden: KM-VESA
SKU-Validierung
Nicht alle Kombinationen sind gültig. Wir validieren SKUs mithilfe von Kompatibilitätsregeln:
Check-SKU-Funktion
def check_sku(sku: str) -> bool:
partids = sku.split("-")
if len(partids) < len(part_sequence):
# ... (Implementierungsdetails ausgelassen)
Kompatibilitäts-Einschränkungen
Komponenten können angeben, mit welchen anderen Komponenten sie kompatibel sind:
Beispiel: Treo-Chassis erlaubt bestimmte Boards
{
"Treo": {
"allows": {
"Board": ["N100", "N150", "i5-1335U"],
"RAM": ["4", "8", "16", "32"],
"Adapter": ["2H", "1H1D"]
}
}
}
Dies verhindert ungültige Kombinationen wie "Treo-i7-64-2048-3H" (Treo unterstützt kein i7 oder 3H-Adapter).
SKU-Erweiterung
Wir konvertieren SKUs in menschenlesbare Namen:
def expand_sku(sku: str) -> str:
part_ids = sku.split("-")
part_names = [
productdb[part_sequence[i].value][part_id]["external"]
# ... (Implementierungsdetails ausgelassen)
]
Beispiel:
Eingabe: Treo-N100-8-256-2H-W6-11P
Ausgabe: Treo Mini PC, Intel N100, 8GB DDR4, 256GB SSD, 2× HDMI, WiFi 6, Windows 11 Pro
Das Feld external enthält den kundenfreundlichen Namen für jede Komponente.
Merkmalsextraktion
Die SKU-Struktur ermöglicht die automatische Extraktion von Merkmalen:
Merkmals-Sequenz
Wir definieren eine Sequenz von zu extrahierenden Merkmalen:
feature_sequence = {
"Generation": {"Unit": "", "Heading": "Processing"},
"Series": {"Unit": "", "Heading": "Processing"},
# ... (Implementierungsdetails ausgelassen)
Jedes Merkmal hat:
-
Unit: Maßeinheit (GB, GHz, Mbps)
-
Heading: Kategorie zur Gruppierung (Processing, Display, Connectivity)
Merkmale extrahieren
Für jede Komponente in der SKU extrahieren wir ihre Merkmale:
# Board: N100
{
"Generation": "12th",
# ... (Implementierungsdetails ausgelassen)
Diese Merkmale werden über alle Komponenten hinweg aggregiert, um den vollständigen Merkmalssatz des Produkts zu erstellen.
Vorteile dieser Struktur
1. Eindeutige Identifikation
Jede Konfiguration hat eine eindeutige SKU. Keine Mehrdeutigkeit.
2. Menschenlesbar
Die SKU ist für Menschen lesbar:
-
Treo-N100-8-256-2H-W6-11Pzeigt die Konfiguration klar an -
Es ist nicht nötig, eine Datenbank nachzuschlagen, um zu verstehen, was sie ist
3. Sortierbar
SKUs sortieren sich natürlich:
-
Treo-N100-8-256-2H-W6-11P -
Treo-N100-16-512-2H-W6-11P -
Treo-i5-16-512-2H-W6-11P
Das Sortieren nach SKU gruppiert ähnliche Konfigurationen zusammen.
4. Filterbar
Wir können nach jeder Komponente filtern:
-
Alle Treo-Produkte:
Treo-* -
Alle N100-Produkte:
*-N100-* -
Alle 16GB-Produkte:
*-16-*
5. Merkmalsextraktion
Die Struktur ermöglicht automatische Merkmalsextraktion für:
-
Produktseiten (Anzeige der Spezifikationen)
-
Suchfilter (Filtern nach RAM, Speicher, etc.)
-
Vergleichstabellen (Merkmale nebeneinander vergleichen)
6. Kostenberechnung
Wir können die Kosten durch Summierung der Komponentenkosten berechnen:
def calculate_sku_cost(sku: str) -> float:
# ... (Implementierungsdetails ausgelassen)
return total_cost
7. URL-Generierung
SKUs werden direkt auf Produkt-URLs abgebildet:
SKU: Treo-N100-8-256-2H-W6-11P
URL: /p/Treo-N100-8-256-2H-W6-11P
Keine separate URL-Slug erforderlich.
Zusammengesetzte Artikel
Einige Komponenten sind zusammengesetzt (bestehen aus mehreren Teilen):
Beispiel: Board mit integrierten Komponenten
{
"N100": {
"external": "Intel N100",
# ... (Implementierungsdetails ausgelassen)
Dies ermöglicht:
-
Stückliste (BOM): Alle benötigten Komponenten auflisten
-
Kostenberechnung: Kosten der Bestandteile summieren
-
Bestandsverfolgung: Komponentenverbrauch nachverfolgen
Einzelteil-SKUs
Nicht alle SKUs sind bindestrich-getrennt. Einzelteile können auch SKUs sein:
-
N100(nur das Board) -
Treo(nur das Chassis) -
KM(Tastatur + Maus)
Diese werden verwendet für:
-
Ersatzteile
-
Upgrades
-
Zubehör
Die Funktion is_single_part() prüft, ob eine SKU ein Einzelteil oder ein vollständiges Produkt ist.
Integration in die SEO-Pipeline
Die SKU-Struktur treibt die SEO-Pipeline an:
- Merkmal-Extraktion: Merkmale für Phrasen-Mappings extrahieren
- Filter-Generierung: Filter für Filter-Extraktion erstellen
- Produkt-Matching: Anfragen anhand von Merkmalen mit Produkten abgleichen
- Abfrage-Seiten: Seiten für Merkmalskombinationen generieren
Siehe SEO-Pipeline-Übersicht für Details.
Referenzen
Technische Konzepte
-
Stock Keeping Unit (SKU) - Wikipedia
-
Stückliste (BOM) - Wikipedia
Verwandte Artikel
-
productdb.json als Single Source of Truth - Produktdatenbank-Struktur
-
Merkmal-Extraktion und -Aggregation - Wie Merkmale extrahiert werden
-
Wie die SKU-Struktur einzigartige Seiten ermöglicht - SEO-Vorteile
-
Phrasen-zu-Filter-Mappings - Merkmale für Filter nutzen
-
SEO-Pipeline-Übersicht - Komplette Pipeline-Architektur
Zusammenfassung
Unser SKU-System verwendet eine bindestrich-getrennte Struktur, um Produktkonfigurationen eindeutig zu identifizieren:
-
Struktur:
Chassis-Board-RAM-Flash-Adapter-WiFi-OS-Zubehör -
Beispiel:
Treo-N100-8-256-2H-W6-11P -
Vorteile:
-
Eindeutige Identifikation (33.750+ Konfigurationen)
-
Menschenlesbar (kein Nachschlagen nötig)
-
Sortierbar (natürliche Ordnung)
-
Filterbar (nach jeder Komponente)
-
Merkmalsextraktion (automatisch)
-
Kostenberechnung (Summe der Teile)
-
URL-Generierung (direkte Abbildung)
Validierung:
-
Komponenten-Existenzprüfung
-
Kompatibilitäts-Einschränkungen
-
Mindestlängen-Anforderung
Erweiterung:
-
SKU → Menschenlesbarer Name
-
Komponente → Merkmale
-
Merkmale → Filter
Diese Struktur ist das Fundament unseres Produktkatalogs und ermöglicht leistungsstarke Suche, Filterung und SEO-Optimierung.