Wenn PrestaShop-Kombinationen die Performance töten: Grenzen und Lösungen
Wenn PrestaShop-Kombinationen die Performance toten: Grenzen und Losungen
Das PrestaShop-Kombinationssystem ermoglicht es, Produktvarianten zu erstellen - verschiedene Groessen, Farben, Materialien und andere Attribute. Es funktioniert perfekt fuer Produkte mit wenigen Varianten. Aber wenn Produkte Hunderte oder Tausende von Kombinationen haben, verschlechtert sich die Performance dramatisch. Produktseiten brauchen 10-30 Sekunden zum Laden, das Back Office wird unbrauchbar und Kategorielistenseiten kriechen.
Warum Kombinationen Performance-Probleme verursachen
Datenbankarchitektur
PrestaShop speichert Kombinationsdaten in mehreren Tabellen: ps_product_attribute (eine Zeile pro Kombination), ps_product_attribute_combination (Verknuepfung zu Attributwerten), ps_stock_available (Lagerbestand pro Kombination), ps_specific_price (Preisuebersteuerungen).
Ein Produkt mit 5 Groessen und 10 Farben erzeugt 50 Kombinationen mit ueber 350 Datenbankzeilen. Ein Produkt mit 3 Attributen (10 x 15 x 4) erzeugt 600 Kombinationen mit ueber 4.200 Zeilen.
Das exponentielle Wachstumsproblem
| Attribute | Werte pro Attribut | Kombinationen | DB-Zeilen ca. |
|---|---|---|---|
| 2 | 5 x 5 | 25 | ~175 |
| 2 | 10 x 10 | 100 | ~700 |
| 3 | 10 x 15 x 8 | 1.200 | ~8.400 |
| 4 | 10 x 15 x 8 x 5 | 6.000 | ~42.000 |
Auswirkungen auf das Front Office
Wenn ein Kunde eine Produktseite mit vielen Kombinationen besucht, muss PrestaShop alle Kombinationen abfragen, den Preis fuer jede berechnen, die Verfuegbarkeit pruefen und die JSON-Datenstruktur generieren. Bei 1.000+ Kombinationen kann dies 5-30 Sekunden dauern.
Praktische Grenzen
| Anzahl | Front Office | Back Office | Bewertung |
|---|---|---|---|
| 1-50 | Schnell | Schnell | Keine Probleme |
| 50-200 | Akzeptabel | Akzeptabel | Handhabbar |
| 200-500 | Langsam (3-8s) | Langsam | Optimierung noetig |
| 500-1000 | Sehr langsam | Sehr langsam | Umstrukturierung erwaegen |
| 1000+ | Unbrauchbar | Oft Abstuerze | Umstrukturierung erforderlich |
Loesung 1 - Produktkatalog umstrukturieren
Die effektivste Loesung: Reduktion der Kombinationen pro Produkt durch Aufteilung.
Produkte nach Hauptattribut aufteilen
Statt eines Produkts "T-Shirt" mit 50 Kombinationen erstellen Sie separate Produkte pro Farbe mit je 5 Groessen-Kombinationen. Schnelleres Frontend, besser fuer SEO.
Loesung 2 - Datenbank- und Server-Optimierung
Datenbankindizes hinzufuegen
ALTER TABLE ps_product_attribute
ADD INDEX idx_product_default (id_product, default_on);
ALTER TABLE ps_stock_available
ADD INDEX idx_product_attribute (id_product, id_product_attribute);MySQL-Konfiguration
innodb_buffer_pool_size = 2G
query_cache_type = 1
query_cache_size = 128MLoesung 3 - Lazy Loading von Kombinationen
Statt alle Kombinationen beim Seitenaufruf zu laden, nur die Daten fuer die ausgewaehlten Attribute per AJAX nachladen. Dies reduziert die initiale Ladezeit erheblich.
Loesung 4 - Caching-Strategien
Full-Page-Cache (Varnish, LiteSpeed) fuer Produktseiten implementieren. Redis oder Memcached statt dateibasiertem Caching nutzen.
Wann Kombinationen ganz vermeiden
- Konfigurierbare Produkte mit 4+ Attributen - Produkt-Konfigurator-Modul nutzen
- Dimensionale Produkte (Breite x Hoehe x Tiefe) - Spezielles Dimensionen-Modul nutzen
- Print-on-Demand-Produkte - Produkt-Designer-Modul nutzen
Empfehlungen nach Kombinationsanzahl
| Anzahl | Empfohlene Massnahme |
|---|---|
| Unter 100 | Keine Aktion noetig |
| 100-300 | DB-Indizes, OPcache, Redis |
| 300-1000 | Produkte aufteilen, Indizes, Lazy Loading |
| Ueber 1000 | Katalog umstrukturieren, Konfigurator-Modul |
War diese Antwort hilfreich?
Haben Sie noch Fragen?
Can't find what you're looking for? Send us your question and we'll get back to you quickly.