Neu Megamenü (category_array) und 7000 Kategorien :-(

ple

Sehr aktives Mitglied
20. August 2019
371
47
Hallo zusammen,
Die Startseite dauert beim ersten Aufruf ca. 1min.
Das Problem liegt bei unseren 7000 Kategorien, die als Array im Megamenü zusammengebaut werden. Angezeigt werden aber nur die ersten beiden Oberkategorien, die darunterliegenden kommen halt erst später, wenn die Kategorie angewählt wird.
Meine Frage ist, kann ich den Aufbau des Arrays irgendwie im Hintergrund laufen lassen und ein 2tes Array der Kategorien über die Startseite nutzen? Oder gibt es vielleicht ganz andere Wege um den ersten Aufruf zu beschleunigen?

Ich weiß, meine Kategorien sind einfach zu viele, aber anders leider nicht möglich.
Anbei mal der Testshop, vielleicht hat wer eine Idee.
http://test2.mhl-shop.de/

Gruß und besten Dank.
 

Star Piercing

Sehr aktives Mitglied
1. Dezember 2012
1.098
256
Wieso den nicht anders möglich?
Kurz drüber geschaut und ich würde da Persönlich mit Merkmalen Arbeiten z.B. das schon Goldmünzen pro Land eine eigene Kategorie haben könnte man durch ein einfaches Merkmal x Kategorien löschen.
Ich weis auch nicht ob da schon alle Artikel im Testshop sind, aber einige Kategorien habe so ja z.B. nur ein Artikel usw.
 

ple

Sehr aktives Mitglied
20. August 2019
371
47
Erst mal danke für deine Unterstützung.
Es sind bei weitem nicht alle Artikel drin. Die Edelmetalle z.B. sind recht einfach aufgebaut.
schwierig wird es z.B. bei der Kategorie Kaiserreich, da viele Kunden dann über alle Gebiete mit dem Filter "Erhaltung = sehr schön+" einfach durchstöbern.
Hier mal ein Beispiel aus unserem aktiven Shop4
https://mhl-shop.de/Kaiserreich__sehr-schoen-
in dem Shop4 ist noch ein Plugin aktiv, welches alle Artikel aus den unterkats hoch holt, damit gestöbert werden kann.

Der Shop 5 wird dann noch angepasst wie der Shop4, aktuell nur eben aufgesetzt zum testen.

Gruß
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.095
1.431
Berlin
Das ist sportlich,

du solltest dir überlegen ob es auch für den User nicht besser ist eine Schnellauswahl zu haben wie z.B.: hier
https://carpartus.de/
Vor allem weil deine Anzeige der Unterkategorien für den User logischerweise zu unübersichtlich wird.

Die Kategorien werden ja eigentlich im cache gelagert, daher dürfte nur der erste Aufruf ein echtes Problem sein, aber die Menge lässt sich über ein normales Menü einfach nicht mehr schön abbilden.
 

ple

Sehr aktives Mitglied
20. August 2019
371
47
das die Kats mit im Cache liegen stimmt soweit, nur wenn ein neuer User kommt, dauerts ja beim ersten mal sehr lange.
Das mit der Auswahl, hatte ich auch schon mal drüber nachgedacht, aber so genau wird oft nicht gesucht. Wir selber suchen auch nach guten Angeboten, da gehen wir aber meist nach z.B. Kaiserreich und suchen bestimmte Jahrgänge oder Erhaltungen, wobei dann der Herrscher erst mal egal ist.
Andere suchen nur bestimmte Gebiete, also gehen die danach.
Ganz schlimm wird es mit der Kategorie Altdeutsche Münzen, alleine Anhalt hat da bereits 16 verschiedene Gebiete/Herrscher. Man könnte überlegen die als Anhalt zu machen und den Rest über Merkmale. Die Kats sind auch noch nicht überarbeitet, gerade mal drübergeguckt, da sind einige doppelt. Die werden aber erst bearbeitet, wenn auch Artikel dafür eintreffen. Die Aufschlüsselung könnte man aber noch mit A-Z lösen, verschaltet sich dann halt noch mal runter.
https://u37837mz.test1.jtl-hosting.de/Altdeutsche-Muenzen-und-Medaillen

Ich habe mal aus Spaß den Datenstamm in einen Testshop von JTL gepackt, der braucht nur 5s zum ersten mal laden. Hatte mit meinen Hoster bereits Kontakt, der wollte noch was ausprobieren, oder JTL macht grundsätzlich irgendwas anders bei eigenen Shops.
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.871
509
Halle
Hallo,
die Kategorie-Performance wurde mehrfach optimiert und in einem aktuellen 5.2.3 ist die Gesamtanzahl der Kategorien nicht unbedingt der problematische Punkt. Performancelastiger sind Kategoriebäume, die schmal anfangen und dann sehr tief geschachtelt sind. Wenn du einen echten Objekt- Cache aktiviert hast (Redis, o.ä) und der groß genug ist, dann wird tatsächlich nur beim allerersten Aufruf nach einem Kategorie-Update der Baum aufgebaut - unabhängig vom User.

Das Laden und Cachen von Kategorien kann zudem über die beiden Define-Parameter CATEGORY_FULL_LOAD_LIMIT und CATEGORY_FULL_LOAD_MAX_LEVEL gesteuert werden. Wenn der Shop mit seinen Kategorien ins CATEGORY_FULL_LOAD_LIMIT läuft und eine Kategorietiefe >3 hat, dann sollte
  • CATEGORY_FULL_LOAD_LIMIT und CATEGORY_FULL_LOAD_MAX_LEVEL soweit erhöht werden dass der gesamte Kategoriebaum als Block in den Cache passt, oder
  • CATEGORY_FULL_LOAD_MAX_LEVEL auf zwei reduziert werden.
Letzteres klingt zwar paradox, führt aber zum effizientesten Laden des Kategoriebaumes, da dann jede Kategorie mit ihren direkten Unterkategorien als separater Block im Cache landet. CATEGORY_FULL_LOAD_LIMIT muss dann so groß sein, dass jede Kategorie mit ihren direkten Unterkategorien geladen werden kann.
Du könntest also mal mit den beiden Defines experimentieren und zb.
PHP:
define('CATEGORY_FULL_LOAD_MAX_LEVEL', 2);
define('CATEGORY_FULL_LOAD_LIMIT', 10000);
in deine config.JTL-Shop.ini.php eintragen. Dein Template sollte dann jedoch dafür ausgelegt sein, auf jeder Kategorieebene immer nur die nächste anzuzeigen.

Wenn das Laden jedoch auf deinem System über eine Minute benötigt und auf einem Hosting bei uns nur ein paar Sekunden, dann solltest du unabhängig davon mal mit deinem Hoster reden oder diesen wechseln. ;)
 
  • Gefällt mir
Reaktionen: ple und hula1499

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.095
1.431
Berlin
Ich würde so eine Auswahl unterstützend mit einbinden oder eben wie du schon angesprochen hast auch ein Alphabet anbieten welches dann die Kategorien nachlädt oder eben filtert (Templateanpassungen)
wie Schnell das ist hängt im wesentlichen davon ab, was du für einen Hoster hast. in Deinem Fall würde ich da sogar eher auf einen dedicated Server von einem guten Serveranbieter gehen.

Die Schnellauswahl ist für die praktisch, die die Seite eben nicht jedes Mal neu aufrufen möchten und sich dann ärgern dass sie wieder eine Kategorieseite sehen.
die die dort aktiv ist, geht immer von dem Verzeichnis aus, in dem Sie sich gerade befindet:
https://carpartus.de/CTS_1

carpartus arbeitet beispielsweise mit ca. 60000 Kategorien die auch sehr verschachtelt sind in denen sich dann ca. 4000 Artikel tummeln und es ist nicht unbedingt langsam.
 

ple

Sehr aktives Mitglied
20. August 2019
371
47
  • CATEGORY_FULL_LOAD_LIMIT und CATEGORY_FULL_LOAD_MAX_LEVEL soweit erhöht werden dass der gesamte Kategoriebaum als Block in den Cache passt, oder
  • CATEGORY_FULL_LOAD_MAX_LEVEL auf zwei reduziert werden.
Erstmal vielen lieben Dank, ich werde das mal austesten. Echt super das Forum. Muss das aber wohl erst mit dem Hoster klären, dass der Shop ähnlich schnell ist wie bei euren Hosting.
Wenn das Laden jedoch auf deinem System über eine Minute benötigt und auf einem Hosting bei uns nur ein paar Sekunden, dann solltest du unabhängig davon mal mit deinem Hoster reden oder diesen wechseln. ;)
Ja, da bin ich schon dran mit ihm. Wir haben die Homepage mal auf ne dedicatet Server umgezogen, aber die Datenbank ist aktuell noch zentral mit anderen. Wollten mal ausprobieren, wenn ich eine eigene bekomme. Ansonsten bin ich schon am überlegen einfach ne dedicatet Server bei Hetzner zu mieten, da ich noch ne paar Domains mehr brauche und ne paar Datenbanken. Ebenso werden noch Bilder und csv Dateien von einer anderen Plattform abgeholt, das muss ja weiterhin gehen. Dachte so an einen AX41 mit Plesk, aber ich hab da Null Erfahrungen mit, was man so braucht, ebenso, wie man an einer JTL Shop5 mietlizens kommt.

carpartus arbeitet beispielsweise mit ca. 60000 Kategorien die auch sehr verschachtelt sind in denen sich dann ca. 4000 Artikel tummeln und es ist nicht unbedingt langsam.
Ja ich merk schon, da muss ich irgendwann mal bei dir anfragen bzgl. Alphabet bei bestimmten Kategorien, nicht alle, aber ne paar. Auch dir danke ich für die vielen Infos.