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

  1. Merkmal-Extraktion: Merkmale für Phrasen-Mappings extrahieren
  2. Filter-Generierung: Filter für Filter-Extraktion erstellen
  3. Produkt-Matching: Anfragen anhand von Merkmalen mit Produkten abgleichen
  4. Abfrage-Seiten: Seiten für Merkmalskombinationen generieren

Siehe SEO-Pipeline-Übersicht für Details.

Referenzen

Technische Konzepte

Verwandte Artikel

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.


← Zurück zum Dokumentationsindex