Witam serdecznie.
Na pewno każdy z użytkowników PrestaShop zauważył że sklep jest zbyt wolny, jeżeli mamy doczynienia ze sklepem gdzie znajduje się sporo produktów, kategorii i podkategorii. Jest to spowodowane źle (tzn. mało wydajnie) napisanym modułem "Blok kategorii", który jest niezbędny w sklepie.
Nie będę wchodził w szczegóły sposobu napisania tego modułu.
Aby przyspieszyć ten moduł trzeba zrobić następujące kroki:
1) Wyłączyć tryb dynamiczny modułu "Blok kategorii" (Admin -> Moduły -> Blok kategorii -> Konfiguruj)
2) Zmodyfikować plik: /modules/blockcategories/category-tree-branch.tpl (warto zrobić kopię zapasową)
Zastąpić wiersz:
{if $node.children|@count > 0}
Wierszem:
{if $node.id == $currentCategoryId}
Wiersz ten znajduje się powyżej fragmentu kodu:
<ul>
{foreach from=$node.children item=child name=categoryTreeBranch}
{if $smarty.foreach.categoryTreeBranch.last}
{include file=$branche_tpl_path node=$child last='true'}
{else}
{include file=$branche_tpl_path node=$child last='false'}
{/if}
{/foreach}
</ul>
Co nam to daje?
To że za każdym razem gdy odwiedzamy jakąś stronę naszego sklepu nie są pobierane od nowa wszystkie podkategorie, co zajmuje sporo czasu.
Klikając na wybraną kategorię zobaczymy tylko podkategorie należące do wybranej kategorii.
Dzięki temu zabiegowi czas ładowania się sklepu w moim przypadku spadł z 6.5s do 0.8s :-)
Pozdrawiam!