Some of our questions and answers

This is a short list of some questions and answers. Type one or more keywords above to find what your are looking for.

Billing

Mój numer VAT to FR86838143592

Jestem freelancerem we Francji, więc jako bardzo mała firma nie płacę podatku VAT (art. 293 B francuskiego prawa podatkowego). Jeśli sprawdzisz cenę, zobaczysz, że nie ma w niej VAT-u ani podatku. 

Page Cache Ultimate JPresta Speed Pack

Ci fałszywi użytkownicy są tworzeni przez Page Cache Ultimate w celu anonimizacji pamięci podręcznej (nowa metoda). Nie wolno ich usuwać (zostaną ponownie utworzone).

Tych fałszywych użytkowników nie będzie dużo, prawdopodobnie mniej niż 5, zależy to od ilości grup i różnic w wyświetlaniu między nimi.

Nie są aktywni, więc nie będą przeszkadzać w Twoich statystykach.

Page Cache Ultimate JPresta Speed Pack

Jeśli masz motyw Anvato, oto co należy zrobić, aby uniknąć otwierania koszyka za każdym razem, gdy jest on odświeżany.

Skopiuj plik /modules/an_theme/views/js/sidebarcart.js w swoim motywie, abyś mógł go nadal aktualizować bez utraty modyfikacji, w /themes//modules/an_theme/views/js(utwórz foldery w razie potrzeby)

W tym pliku zastąpić ligne:

if (prestashop.page.page_name != 'cart' && prestashop.page.page_name != 'checkout') {

Przez

if (prestashop.page.page_name != 'cart' && prestashop.page.page_name != 'checkout' && requestData.action!='refresh') {

Następnie wyczyść pamięć podręczną na stronie Performances i pamięć podręczną przeglądarki, abyś mógł przetestować.

Page Cache Ultimate JPresta Speed Pack

Jeśli twój motyw używa tagu "widgetblock", tak jak robi to motyw Warehouse, to musisz wyczyścić pamięć podręczną na stronie Performances po włączeniu Page Cache, aby szablon został skompilowany ponownie.

Page Cache Ultimate

All our modules can run on LiteSpeed Web Server since it supports the Apache .htaccess file.

However, the HTML cache feature (Page Cache Ultimate) is not compatible with the LiteSpeed Cache Plugin since they are both working on the same layer of cache.

Which one should you choose?

LiteSpeed Cache is a generic cache which does not handle all different contexts of Prestashop. Which taxes are applied? Is there a flash sale comming up? Should I display a different content for this user because he belongs to a specific user group? Did this visitor accept cookies? etc.

Page Cache Ultimate has been created for Prestashop and it is only dedicated to this platform, it handles all different contexts and can also upgrade fast if a new Prestashop feature is out.

WebP JPresta Speed Pack

If you are using Nginx, then make sure your configuration is as follow:

Nginx configuration for Speed Pack module

"Proxy mode" must be ON, other options must be OFF.

Page Cache Ultimate JPresta Speed Pack

Jeżeli używasz modułu PageSpeed Apache opracowanego przez Google (x-mod-pagespeed) to musisz wyłączyć poniższą opcję, aby nie nadpisywała ona dyrektyw cache przeglądarki dodanych przez Page Cache:

ModPagespeedModifyCachingHeaders off
Billing JPresta Cache Warmer

Fakturę znajdziesz na swoim koncie JPresta w menu "Historia i szczegóły zamówienia".

Jeśli jej nie widzisz upewnij się, że zarejestrowałeś adres na swoim koncie, aby faktura mogła zostać wygenerowana.

Page Cache Ultimate JPresta Speed Pack

Nie, jest wysoce zalecane, aby zachować Smarty cache włączone. Przyspieszy to działanie stron, które nie są buforowane, a także stron, na których bufor nie został jeszcze wygenerowany.

Page Cache Ultimate JPresta Speed Pack

Aby odzyskać swoje style, musisz po prostu wyczyścić pamięć podręczną "Page Cache Ultimate".

Aby uniknąć tego problemu możesz wejść w "Tryb zaawansowany", w konfigurację "Page Cache Ultimate", a następnie w "Klucz pamięci podręcznej" włączyć "Wstaw wersję CSS i JS do klucza pamięci podręcznej".

Page Cache Ultimate JPresta Speed Pack

To avoid the cookie notice to appear 1 second, then disappear, you must override the javascript file of the iqitcookielaw module.

To do it, create a file with the following content:

$(document).ready(function () {
 if (getCookie('cookielaw_module') != 1) {
  $("#iqitcookielaw").addClass('iqitcookielaw-showed');
 }
 $("#iqitcookielaw-accept").click(function (event) {
  event.preventDefault();
  $("#iqitcookielaw").removeClass('iqitcookielaw-showed');
  setcook();
 });
});

function setcook() {
 var name = 'cookielaw_module';
 var value = '1';
 var today = new Date();
 var expire = new Date();
 expire.setTime(today.getTime() + 3600000 * 24 * 14);
 document.cookie = name + "=" + escape(value) + ";path=/;" + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()))
}

function getCookie(cname) {
 var name = cname + "=";
 var ca = document.cookie.split(';');
 for (var i = 0; i != ca.length; i++) {
  var c = ca[i];
  while (c.charAt(0) == ' ') c = c.substring(1);
  if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
 }
 return "";
}

And place it in the theme (or child theme if you have one): /themes/warehouse/modules/iqitcookielaw/views/js/front.js

Then clear the cache in the Performances page.

Page Cache Ultimate JPresta Speed Pack

When the cache is created, the page is anonymized, that means it is displayed without any information about the visitor displaying the page.

Modules that display content relative to the current visitor can be marked as dynamic, that means the content will be refreshed (replaced) by a background request in the browser that will carry the context of the current visitor.

If you check the option "Display nothing in cache" then the module will not be called to display its content in this hook during the creation of the cache. However, the content will be displayed as other dynamic modules (with background request).

Page Cache Ultimate JPresta Speed Pack

If the products list is reloaded each time you display a page with a products list then you can fix this by modifying the file /warehouse/modules/ps_shoppingcart/ps_shoppingcart.js as follow:

How to fix warehouse theme

Zastąp tę linię:

prestashop.emit('updateFacets', window.location.href);

.

By:

if (event.reason && event.reason.linkAction != 'refresh') {
    prestashop.emit('updateFacets', window.location.href);
}
Page Cache Ultimate JPresta Speed Pack

Uaktualnij Page Cache Ultimate przynajmniej do wersji 7.9.39, aby uzyskać pełną kompatybilność z modułem cookiesplus.

WebP JPresta Speed Pack

Jeśli po zainstalowaniu modułu niektóre obrazy w Twoim sklepie, takie jak logo, obrazy na stronach CMS, obrazy w panelu administracyjnym itp., przestaną się wyświetlać, prawdopodobnie jest to spowodowane plikiem .htaccess w katalogach /img i /img/cms. Ten plik blokuje wszystkie skrypty PHP, nawet jeśli jest to tylko przekierowanie (skrypt nie znajduje się faktycznie w tym katalogu).

Aby rozwiązać ten problem, należy dodać wyjątek dla naszego konwertera webp.php w następujący sposób:

<IfModule mod_php5.c>
    php_flag engine off

# Enable PHP only for webp.php (Speed Pack) <Files "webp.php"> php_flag engine on </Files> </IfModule> # Apache 2.2 <IfModule !mod_authz_core.c> Order deny,allow Deny from all <Files ~ "webp.php|(?i)^.*\.(jpg|jpeg|gif|png|bmp|tiff|svg|pdf|mov|mpeg|mp4|avi|mpg|wma|flv|webm|ico|webp)$"> Allow from all </Files> </IfModule> # Apache 2.4 <IfModule mod_authz_core.c> Require all denied <Files ~ "webp.php|(?i)^.*\.(jpg|jpeg|gif|png|bmp|tiff|svg|pdf|mov|mpeg|mp4|avi|mpg|wma|flv|webm|ico|webp)$">
        Require all granted
    </Files>
</IfModule>

Or for /img/cms/.htaccess

<IfModule mod_php5.c>
    php_flag engine off

    # Enable PHP only for webp.php (Speed Pack)
    <Files "webp.php">
        php_flag engine on
    </Files>
</IfModule>

# Enable webp.php (Speed Pack)
<Files "webp.php">
    Order allow,deny
    Allow from all
</Files>

deny from all
<Files ~ "(?i)^.*\.(jpg|jpeg|gif|png|bmp|tiff|svg|pdf|mov|mpeg|mp4|avi|mpg|wma|flv|webm|webp)$">
	order deny,allow
	allow from all
</Files>

Modyfikacje wykonane w module, w motywie, w CSS lub w Javascript nie mogą być automatycznie wykryte, więc musisz wyczyścić pamięć podręczną, aby zobaczyć zmiany.

Istnieją 3 sposoby, aby wyczyścić pamięć podręczną

  1. W konfiguracji modułu "Page Cache Ultimate", przejdź do menu "Statystyki". Możesz filtrować strony, których dotyczą Twoje modyfikacje. Następnie kliknij przycisk "Wyczyść pamięć podręczną" na dole tabeli.
  2. Kliknij przycisk "Wyczyść pamięć podręczną" w konfiguracji modułu "Page Cache Ultimate" na górze i po prawej stronie ekranu, spowoduje to wyczyszczenie pamięci podręcznej wszystkich stron.
  3. Użyj adresu URL, który znajdziesz w menu "API" w konfiguracji modułu "Page Cache Ultimate"
Page Cache Ultimate JPresta Speed Pack

W konfiguracji koszyka, w sekcji "Akcja dodawania do koszyka" wyłącz opcję "Otwórz koszyk".

Creative Element - shopping cart options

JPresta Origin

Jeśli używasz modułu "SuperTinyMCE PRO" stworzonego przez Liewebs to musisz dodać wyjątek w konfiguracji tego modułu dla kontrolera "JprestaThemeConfiguratorLive". Upewnij się również, że posiadasz co najmniej wersję 1.2.2 modułu "JPresta - Theme Configurator".

WebP JPresta Speed Pack

Tak, wszystkie zdjęcia z Twojego sklepu zostaną automatycznie przekonwertowane do formatu WEBP. Nawet obrazy z CMS lub innych modułów jak blog.

Page Cache Ultimate JPresta Speed Pack

Jest to normalne, gdy pamięć podręczna nie jest dostępna, wyświetlanie jest tak samo wolne jak bez pamięci podręcznej.

Należy opróżniać pamięć podręczną tylko wtedy, gdy jest to konieczne (modyfikacja CSS lub Javascript, dla szablonów wybierz opcję "Przekompiluj pliki szablonów, jeśli zostały zaktualizowane" na stronie "Wydajność").

WebP JPresta Speed Pack

TAK nadal potrzebujesz modułu WEBP dla Prestashop! Ponieważ funkcja ta ma błąd w PS 8.0. Powinna być naprawiona w PS 8.1, ale sprawdzę to jak tylko zostanie wydana, bo nie wiem czy obrazy JPG będą wyświetlane przeglądarkom, które nie potrafią odczytać formatu WEBP jak Safari (iPhone).

WebP JPresta Speed Pack

To było bardzo zdradliwe, aby znaleźć konfigurację, która działa dobrze. Nie jestem ekspertem w konfiguracji nginx, więc domyślam się, że jest inny sposób na zrobienie tego. Jeśli chcesz poprawić tę konfigurację, skontaktuj się ze mną, z przyjemnością zaktualizuję ten post, aby pomóc innym ludziom!

Oto moje rozwiązanie (bądźcie uprzejmi).

Przed sekcją "serwer" umieść ten kod:

map $http_accept $webp_enable {
	default 0;
	"~*webp" 1;
}

Powie nam, czy przeglądarka odwiedzającego może odczytać obrazy WEBP.

Prawdopodobnie masz wiele linii "rewrite" dla wszystkich obrazów, umieść następujący kod tuż przed nim:

# Jpresta Speedpack
if ($webp_enable = 1) {
	# Rewrite images URL using a specific extension ".webp_compressor" so we can have specific rules to compress the image/svg
	# if the webp file is not already created.
	rewrite "^/c/([0-9]+)(\-[_a-zA-Z0-9-]*)/(.*)\.(jpg|jpeg|png)$" /img/c/$1$2.webp_compressor last;
	rewrite "^/c/([_a-zA-Z-]+)/(.*)\.(jpg|jpeg|png)$" /img/c/$1.webp_compressor last;
	rewrite "^/([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.(jpg|jpeg|png)$" /img/p/$1/$1$2.webp_compressor last;
	rewrite "^/([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.(jpg|jpeg|png)$" /img/p/$1/$2/$1$2$3.webp_compressor last;
	rewrite "^/([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.(jpg|jpeg|png)$" /img/p/$1/$2/$3/$1$2$3$4.webp_compressor last;
	rewrite "^/([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.(jpg|jpeg|png)$" /img/p/$1/$2/$3/$4/$1$2$3$4$5.webp_compressor last;
	rewrite "^/([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.(jpg|jpeg|png)$" /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.webp_compressor last;
	rewrite "^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.(jpg|jpeg|png)$" /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.webp_compressor last;
	rewrite "^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.(jpg|jpeg|png)$" /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.webp_compressor last;
	rewrite "^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/(\P{M}\p{M}*)*\.(jpg|jpeg|png)$" /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.webp_compressor last;
	# all other images
	rewrite "^(.+)\.(jpg|jpeg|png)$" $1.webp_compressor last;
}

location ~* ^(.+)\.webp_compressor$ {
	# Indicates to proxies that the file content/format depends (Vary) on the "Accept" header
	add_header Vary Accept;

	# Indicates to proxies that the file can be cached for the max duration
	add_header Pragma public;
	add_header Cache-Control "public, must-revalidate, proxy-revalidate";
	expires max;

	# Indicates to nginx not to log access
	access_log off;
	log_not_found off;

	# Try to serve the WEBP file directly or compress the image
	set $url_webp_compressor "/modules/jprestaspeedpack/controllers/front/webp.php?src=$1.jpg";
	try_files $1.webp $url_webp_compressor;
}

OSTRZEŻENIE: jeśli używasz samodzielnego modułu kompresji WEBP, musisz zastąpić „jprestaspeedpack” przez „jprestawebp”.

Skontaktuj się ze mną, jeśli potrzebujesz pomocy lub jeśli możesz poprawić skrypt!

Page Cache Ultimate JPresta Speed Pack

Jeśli lista wyboru waluty już nie działa, sprawdź te 2 opcje:

Opcja "Ignoruj adresy URL pasujące do tego regexa" musi zawierać ".*SubmitCurrency=1.*", np. ".*[&]q=.*|.*SubmitCurrency=1.*"

Opcja "Ignorowane parametry URL" nie powinna zawierać "submitcurrency,id_currency"

Możesz również chcieć wyłączyć pamięć podręczną przeglądarki, ponieważ jeśli odwiedzający zmieni walutę po obejrzeniu kilku stron, jeśli powróci do tych stron, zostanie wyświetlona oryginalna waluta.

Nie zapomnij wyczyścić modułu i pamięci podręcznej przeglądarki po tych zmianach.

JPresta Cache Warmer
Unable to get cache-warmer informations from the shop (maybe the module is disabled or uninstalled): Read timed out

Jeśli widzisz ten błąd w logu cache-wamer, oznacza to, że jest timeout, kiedy cache-warmer pobiera strony, aby się rozgrzać. Aby uniknąć tego timeoutu, w konfiguracji Page Cache Ultimate, kliknij na "Tryb zaawansowany", a następnie w menu na "Opcje" i ustaw niższą wartość dla "Maksymalnego czasu wykonania w sekundach".

WebP JPresta Speed Pack

tak, przeglądarki, które nie mogą odczytać formatu WEBP, otrzymają oryginalny format (JPG/PNG).

Page Cache Ultimate JPresta Speed Pack

Kiedy modyfikujesz produkt, kategorię, stronę CMS, cenę, stan magazynowy itp. pamięć podręczna jest automatycznie odświeżana.

Kiedy dodajesz, usuwasz lub modyfikujesz moduł, musisz ręcznie wyczyścić pamięć podręczną, ponieważ nie można tego wykryć automatycznie. Na przykład podczas modyfikowania suwaka strony głównej.

Kiedy modyfikujesz CSS lub szablon motywu, musisz ręcznie wyczyścić pamięć podręczną, ponieważ nie można tego wykryć automatycznie.

Kiedy synchronizujesz lub modyfikujesz swój katalog, ceny i/lub stany magazynowe za pomocą zewnętrznej aplikacji, prawdopodobnie będziesz musiał wyczyścić pamięć podręczną ręcznie lub za pomocą skryptu, ponieważ przechwytywanie Prestashop nie jest wykonywane.

Aby wyczyścić pamięć podręczną określonych stron, możesz użyć adresów URL CRON/API, które znajdziesz w menu „API” w konfiguracji Page Cache Ultimate. Możesz także użyć tabeli statystyk do przefiltrowania stron, które chcesz odświeżyć, a następnie kliknąć przycisk „Wyczyść pamięć podręczną (tylko pliki)”.

Należy również pamiętać, że pamięci podręcznej przeglądarki nie można wyczyścić, dlatego jest ona ograniczona w czasie.

Page Cache Ultimate JPresta Speed Pack

Dzieje się tak, ponieważ link logowania jest ładowany dynamicznie i dlatego parametr "back", który odwołuje się do bieżącego adresu URL, jest ustawiony z adresem URL modułów dynamicznych.

Aby uniknąć tego problemu, wejdź w konfigurację strony Page Cache Ultimate, w menu "Dynamiczne moduły i widżety", na dole dodaj następujący kod javascript do pola "Javascript do wykonania":

if (!prestashop_pc.customer.is_logged) {
$('header a').each(function() {
$(this).attr('href').replace('ajax%3Dtrue', '').replace('page_cache_dynamics_mods%3D=1', '')
});
}

Wyczyść pamięć podręczną i powinno to naprawić problem.

Page Cache Ultimate JPresta Speed Pack

te katalogi są tworzone, gdy cache nie może być w pełni usunięty w PHP, ponieważ jest zbyt długi i nie powiedzie się z błędem timed out. Więc zamiast usuwać katalog cache, jest on po prostu zmieniany na ten z przyrostkiem.

Możesz usunąć wszystkie te katalogi z sufiksem please_delete_me, ale polecam zrobić to bezpośrednio w konsoli serwera, ponieważ będzie to zbyt długie, aby zrobić to przez FTP.

Page Cache Ultimate JPresta Speed Pack

Te haki są przeznaczone dla twórców modułów, skontaktuj się z pomocą techniczną, jeśli potrzebujesz pomocy.

Oto przykład implementacji funkcji haków:

    /**
     * Called each time a page is displayed so this must remain very fast!
     * @param $params Empty array
     * @return mixed The datas you will need in hookActionJPrestaRestoreSpecificCacheKeyInfos()
     */
    public function hookActionJPrestaGetSpecificCacheKeyInfos($params) {
        // Let's say that the cookie 'test' modify the content of the page, we indicates to the cache manager
        // to generate a cache key that depends on the value of this cookie
        return $_COOKIE['test'];
    }

    /**
     * This function is called by Page Cache Ultimate when the cache-warmer service want to generate the cache of a
     * specific context. In this case we must restore the context so the content is the good one.
     * @param $params $params['specifics'] contains the datas returned by the hook 'ActionJPrestaGetSpecificCacheKeyInfos'
     */
    public function hookActionJPrestaRestoreSpecificCacheKeyInfos($params)
    {
        // Here we will just modify the $_COOKIE value, we don't need to send the cookie to the browser with function
        // setcookie, we just want the remaining PHP code to execute to get the correct value of the cookie.
        $_COOKIE['test'] = $params['specifics'];
    }

JPresta Cache Warmer

Czas trwania rozgrzewki zależy od 3 czynników:

  • Liczba stron do wygenerowania: pierwsze rozgrzewki zazwyczaj zawierają dużo stron, co jest normalne, a liczba ta będzie się zmniejszać wraz z postępem rozgrzewek
  • Maksymalna liczba zdefiniowanych botów: domyślnie jest to 30, ale można ją zmniejszyć do 5 botów, aby zmniejszyć obciążenie serwera, ale oczywiście wydłuży to czas potrzebny na każdą rozgrzewkę
  • TTFB stron bez pamięci podręcznej: jeśli czas odpowiedzi serwera jest długi bez pamięci podręcznej (> 3 s), może być konieczne przeanalizowanie powolności Prestashop
JPresta Cache Warmer

Boty Cache-Warmer są prawdopodobnie uważane za boty SPAM przez dostawcę usług hostingowych. Aby to zadziałało, musisz wskazać w ustawieniach swojego dostawcy hostingu, że agent użytkownika "JPresta-Cache-Warmer" jest dozwolony.

JPresta Cache Warmer

W porównaniu do liczby produktów i kategorii, które posiadasz, nie sądziłeś, że będziesz miał tak wiele stron do wygenerowania, i to jest normalne!

Cache-warmer wygeneruje strony Twojego sklepu Prestashop w różnych kontekstach. Na przykład, będziesz mieć jeden kontekst dla telefonów komórkowych, inny dla komputerów, jeden dla odwiedzających, a inny dla połączonych klientów itp.

Tak więc liczba stron jest mnożona przez liczbę kontekstów.

JPresta Cache Warmer

Jeśli subskrypcja obejmuje tylko jedną rozgrzewkę, to tak, można określić czas rozgrzewki.

Jeśli pakiet subskrypcji obejmuje kilka rozgrzewek, można określić czas rozpoczęcia pierwszej rozgrzewki, a kolejne będą uruchamiane w regularnych odstępach czasu.

JPresta Cache Warmer

JPresta-Cache-Warmer korzysta z serwerów Amazon (AWS), aby zapewnić stabilną i wydajną usługę niezależnie od liczby abonentów.

Jeśli chcesz, aby Twój dostawca hostingu nie blokował robotów podgrzewających pamięć podręczną, musisz autoryzować żądania z następujących IPS: 18.119.72.109 i 18.189.172.189

JPresta Cache Warmer

Podczas korzystania z natywnych statystyk Prestashop, aby uniknąć uwzględnienia cache-warmera w statystykach, wystarczy dodać to nadpisanie w /override/classes/Connection.php:

class Connection extends ConnectionCore
{
public static function setNewConnection($cookie)
{
if (isset($_SERVER['HTTP_USER_AGENT'])
&& preg_match('/JPresta-Cache-Warmer/i', $_SERVER['HTTP_USER_AGENT'])) {
// To jest cache-warmer: nie rejestruj połączenia
return false;
}
return parent::setNewConnection($cookie);
}
}

Page Cache Ultimate JPresta Speed Pack

Moduł Creative Elements umożliwia edycję części sklepu za pomocą linków/przycisków wyświetlanych bezpośrednio w sklepie po połączeniu z administratorem Prestashop. Aby zachować tę funkcjonalność, pamięć podręczna jest dezaktywowana z powodem "editing-with-creative-element". Zapewniamy, że odwiedzający korzystają z pamięci podręcznej, tylko użytkownicy połączeni z administratorem nie mają pamięci podręcznej. Aby uzyskać dostęp do pamięci podręcznej, wystarczy wyświetlić sklep w prywatnej karcie przeglądarki.

Page Cache Ultimate JPresta Speed Pack

Pierwszą rzeczą do zrobienia jest upewnienie się, że masz najnowszą wersję modułu, ponieważ stale go ulepszam, aby zmniejszyć zużycie pamięci, zarówno po stronie bazy danych, jak i dysku twardego.

Drugą rzeczą jest okresowe przeprowadzanie czyszczenia (co 2 lub 3 dni). Czyszczenie usuwa z pamięci podręcznej strony, które już nie istnieją lub których kontekst już nie istnieje. Nie ma to wpływu na wydajność pamięci podręcznej. Czyszczenie można wykonać ręcznie za pomocą przycisku pod tabelą statystyk pamięci podręcznej lub planując zadanie CRON z adresem URL wyświetlanym w menu "API (adresy URL CRON)" w konfiguracji modułu.

Wreszcie, jeśli w /var/cache/pagecache znajdują się katalogi kończące się na "please_delete_me", możesz je usunąć. Jest to stara pamięć podręczna, której PHP nie było w stanie całkowicie usunąć (zbyt długa).

Page Cache Ultimate

Podczas próby instalacji Page Cache Ultimate pojawia się komunikat o błędzie "Ten plik nie wydaje się być prawidłowym plikiem .zip modułu"? Jest to normalne, ponieważ plik zip zawiera kilka plików zip, które umożliwiają instalację tego modułu w zależności od wersji Prestashop: PS-1.5/1.6, PS1.7/8 i Thirtybees.

Musisz zatem rozpakować i zainstalować plik zip, który pasuje do Twojego sklepu.

WebP JPresta Speed Pack

Moduł nie wywołuje funkcji Hook, która umożliwia aktualizację.

Musisz zmodyfikować funkcję imageResize() w pliku /modules/prestablog/prestablog.php:

Zastąp to

         return ImageManager::write('jpg', $dest_image, $file_after);

Przez to

         $ret = ImageManager::write('jpg', $dest_image, $file_after);

Hook::exec('actionOnImageResizeAfter', ['dst_file' => $file_after, 'file_type' => 'jpg']);

return $ret;

następnie obrazy zostaną zaktualizowane.

Page Cache Ultimate JPresta Speed Pack

Statyczna pamięć podręczna może być używana tylko wtedy, gdy znany jest kontekst odwiedzającego. Kontekst zawiera szereg informacji, których nie można wywnioskować na podstawie samego adresu URL: waluta, grupy użytkowników, wybór plików cookie, podatki do zastosowania itp.

Kontekst ten jest przechowywany w pliku cookie o nazwie "jpresta_cache_context", który jest dodawany, gdy użytkownik wyświetla pierwszą stronę. Gdy plik cookie jest obecny, można użyć statycznej pamięci podręcznej.

Page Cache Ultimate JPresta Speed Pack

Przejdź do konfiguracji modułu, w menu "System pamięci podręcznej" upewnij się, że wybrana jest opcja "Prestashop Static!". Jeśli jest już zaznaczona, wybierz "Standardowy system plików" i zapisz, a następnie wybierz "Prestashop Static!" i zapisz ponownie. Spowoduje to ponowną aktywację statycznej pamięci podręcznej.

Page Cache Ultimate JPresta Speed Pack

Komunikat "customer-specific-prices" oznacza, że jesteś połączony z użytkownikiem, który ma określone reguły cenowe, więc nie ma sensu tworzyć pamięci podręcznej, ponieważ tylko on będzie mógł z nich skorzystać. Lepiej jest tworzyć grupy użytkowników i tworzyć reguły cenowe dla tych grup.

Page Cache Ultimate JPresta Speed Pack

Być może symulujesz ekran telefonu za pomocą konsoli przeglądarki, dlatego widzisz ten widok mobilny pomimo posiadania ekranu komputerowego.

Dzieje się tak, ponieważ plik cookie o nazwie 'jpresta_cache_context' przechowuje kontekst odwiedzającego w przeglądarce. Ten kontekst zawiera informacje o tym, czy widok jest 'mobilny' czy 'na pulpicie'. Dlatego jeśli początkowo wyświetlasz strony w trybie pulpitu, a następnie przełączysz się na tryb mobilny, pamięć podręczna nadal będzie dostarczać widok pulpitu.

Jeśli chcesz przetestować widok mobilny za pomocą konsoli przeglądarki, upewnij się, że usuniesz plik cookie 'jpresta_cache_context' wcześniej.

WebP JPresta Speed Pack

Nie, moduł tylko konwertuje obrazy JPG/PNG do formatu WEBP. Zaleca się wgrywanie obrazów jako JPG, ponieważ niektóre przeglądarki wciąż nie mogą ładować plików WEBP. Ponadto uważam, że JPG są lepsze jako obrazy oryginalne, ponieważ Prestashop tworzy wiele formatów/rozmiarów obrazów, dlatego oryginalny obraz powinien być dobrej jakości.

Page Cache Ultimate JPresta Speed Pack

Jeśli korzystasz z modułu "Google Tag Manager Enhanced Ecommerce" stworzonego przez "Comptoir du code", upewnij się, że masz najnowszą wersję modułu i włącz specjalną opcję do użytku z modułami full page cache.

Google Tag Manager

W każdym razie nie musisz oznaczać modułów Google Tag Manager jako dynamicznych.

JPresta Speed Pack

Wyniki obliczane przez Pagespeed i GTMetrix obejmują bardzo dużą liczbę parametrów, których znaczenie różni się w zależności od tego, czy korzystasz z telefonu komórkowego, czy komputera.

Moduł Prestashop Speed ​​Pack umożliwia korektę następujących punktów zgłoszonych przez Pagespeed Insight lub GT Metrix:

  • Skróć czas odpowiedzi serwera (TTFB)
  • Odłóż obrazy poza ekranem
  • Udostępnianie obrazów w formatach nowej generacji

Inne parametry, takie jak LCP, nie mogą być korygowane przez moduł. Na przykład ten LCP wskazuje opóźnienie wyświetlania największego elementu wyświetlanego jako pierwszy; często pogarsza się to przez użycie karuzeli, która wyświetla obrazy podczas leniwego ładowania lub dlatego, że kod JavaScript, który ją inicjuje, jest zbyt wolny. Tego rodzaju problem można rozwiązać tylko ręcznie.

Ponadto, aby mieć pewność, że obliczenie wyniku zostało wykonane przy dostępnej pamięci podręcznej, uruchom je dwukrotnie.

Zapraszam do przeczytania mojego artykułu, aby w pełni to zrozumieć Pagespeed score for Prestashop .

Page Cache Ultimate JPresta Speed Pack

Po zatwierdzeniu kroków konfiguracji pamiętaj o uruchomieniu automatycznej konfiguracji w kroku 4. Spowoduje to skonfigurowanie modułu Page Cache Ultimate dla wszystkich znanych modułów, takich jak koszyk. Powinieneś polegać na tej automatycznej konfiguracji i wprowadzać ręczne modyfikacje tylko wtedy, gdy coś nie działa jak zwykle, gdy pamięć podręczna jest włączona.

Page Cache Ultimate JPresta Speed Pack

Wynik obliczany przez Pagespeed i GTMetrix obejmuje bardzo dużą liczbę parametrów, których znaczenie różni się w zależności od tego, czy korzystasz z telefonu komórkowego, czy komputera.

Moduł Prestashop Speed ​​Pack umożliwia poprawienie następujących punktów zgłoszonych przez Pagespeed Insight lub GT Metrix:

  • Skróć czas odpowiedzi serwera/TTFB  (Page Cache Ultimate)
  • Udostępnianie obrazów w formatach nowej generacji (kompresja obrazów WEBP)
  • Odłóż obrazy poza ekranem (leniwe ładowanie obrazów)

Inne parametry, takie jak LCP, nie mogą być korygowane przez moduł. Na przykład ten LCP wskazuje opóźnienie wyświetlania największego elementu wyświetlanego jako pierwszy; często pogarsza się to przez użycie karuzeli, która wyświetla obrazy przy użyciu systemu leniwego ładowania lub dlatego, że kod JavaScript, który ją inicjuje, jest zbyt wolny. Tego rodzaju problem można rozwiązać tylko ręcznie.

Aby mieć pewność, że obliczenie wyniku zostało wykonane przy dostępnej pamięci podręcznej, uruchom je dwukrotnie.

Zapraszam do przeczytania mojego artykułu, Zrozumienie i poprawa wyniku Pagespeed dla Twojego sklepu Prestashop  

Page Cache Ultimate JPresta Speed Pack

Strona może mieć wiele wersji w pamięci podręcznej w zależności od kontekstu odwiedzającego. Kontekst ten obejmuje informacje takie jak wybrana waluta, grupa użytkownika, preferencje odwiedzającego dotyczące plików cookie, zasady podatkowe stosowane dla tego odwiedzającego, kraj odwiedzającego, jeśli ma to znaczenie, itp. Dlatego możesz nie otrzymać strony z pamięci podręcznej, gdy wyświetlasz stronę, ponieważ twój kontekst jest inny.

Page Cache Ultimate JPresta Speed Pack

Moduły takie jak "Creative Slider" używają krótkich kodów, aby ułatwić wyświetlanie treści. Zwykle odbywa się to w haku "actionOutputHTMLBefore", więc po prostu upewnij się, że moduł pamięci podręcznej jest umieszczony po wszystkich modułach w tym haku. Przejdź do "Design" > "Positions", zaznacz opcję "Display non-positionable hooks", wyszukaj hook "actionOutputHTMLBefore" i przenieś moduł Page Cache Ultimate lub Speed Pack na koniec.

Po wykonaniu tej czynności należy wyczyścić pamięć podręczną

Page Cache Ultimate JPresta Speed Pack

Ten błąd jest wynikiem nowego ograniczenia bezpieczeństwa wdrożonego przez mojego dostawcę hostingu (OVH) na wszystkich ich serwerach.

Aby go rozwiązać, musisz zaktualizować moje moduły do najnowszej wersji.

Nie będziesz mógł tego zrobić za pomocą modułu JPresta Easy Upgrade, ponieważ ten również wymaga aktualizacji.

Aby przeprowadzić aktualizację, skorzystaj z Addons lub pobierz plik zip ze swojego konta JPresta. W przypadku Page Cache Ultimate i Speed Pack musisz rozpakować zip, aby znaleźć ten, który odpowiada twojej wersji PrestaShop. Gdy masz odpowiedni plik zip, zainstaluj go jako nowy moduł, aby zaktualizować bieżącą wersję, zachowując konfigurację.

Nie martw się, po tym będziesz mógł kontynuować aktualizację za pomocą JPresta Easy Upgrade jak zwykle.

JPresta Cache Warmer

Kod błędu 524 zwykle oznacza, że żądanie pobrania listy adresów URL do wygenerowania trwało zbyt długo.

Aby uniknąć tego błędu:

  1. Przejdź do konfiguracji Page Cache Ultimate (lub Speed Pack).
  2. Kliknij Tryb zaawansowany, a następnie Opcje.
  3. Ustaw opcję Max execution time in seconds na 90 sekund (lub mniej, jeśli jest już 90s).
Page Cache Ultimate JPresta Speed Pack

Aby uniknąć buforowania niektórych stron w sklepie, można użyć wyrażenia regularnego.

Przejdź do konfiguracji modułu, kliknij "Tryb zaawansowany", a następnie "Opcje". Znajdziesz tam pole o nazwie "Ignoruj adresy URL przy użyciu wyrażeń regularnych". Pole to jest domyślnie wypełnione następującym wyrażeniem regularnym:

.*[\?&]q=.*|.*SubmitCurrency=1.*

Z tym wyrażeniem regularnym moduł wykluczy wszystkie wyszukiwania z pamięci podręcznej (przy użyciu parametru "q"), ponieważ nie jest to wydajne, ponieważ liczba identycznych wyszukiwań jest bardzo niska. Dezaktywuje również pamięć podręczną po zmianie waluty.

Aby dodać stronę do wykluczenia, można dodać kolejne wyrażenie ze znakiem "|" po nim. Na przykład, jeśli chcesz wykluczyć stronę https://shop.com/85-foo :

.*[\?&]q=.*|.*SubmitCurrency=1.*|.*85-foo.*

Więcej informacji na temat wyrażeń regularnych można znaleźć w tej dokumentacji: https://www.php.net/manual/en/reference.pcre.pattern.syntax.php

Aby przetestować wyrażenie regularne, użyj tego narzędzia: https://regex101.com/

Page Cache Ultimate JPresta Speed Pack

Gdy pamięć podręczna jest włączona, zmienna JavaScript (JS) "prestashop" nie zawiera informacji o bieżącym odwiedzającym/kliencie. Pamięć podręczna jest bowiem zanonimizowana.

Trzeba poczekać, aż dynamiczne moduły zostaną odświeżone, aby te informacje były dostępne.

Oto skrypt, który pozwoli uzyskać dostęp do informacji, gdy tylko będą dostępne:


if (typeof jprestaGetCacheType == 'function') {
    // jprestaDynamicContentLoaded zostanie wyemitowany
    prestashop.on('jprestaDynamicContentLoaded', function() {
        // Tutaj zmienna 'prestashop_pc' może być używana jak zmienna 'prestashop'
        // Wszystko zdefiniowane w Media::addJsDef jest również zaktualizowane
        console.log('Wydarzenie jprestaDynamicContentLoaded zostało wyemitowane i odebrane');
        if (prestashop_pc.customer.is_logged) {
            console.log('Klient ' + prestashop_pc.customer.email + ' jest zalogowany.');
        } else {
            console.log('Żaden klient nie jest zalogowany.');
        }
    });
} else {
    // Normalne przetwarzanie, brak pamięci podręcznej
    // jprestaDynamicContentLoaded nie zostanie wyemitowane
    console.log('Ta strona nie jest zapisana w pamięci podręcznej');
    if (prestashop.customer.is_logged) {
        console.log('Klient ' + prestashop.customer.email + ' jest zalogowany.');
    } else {
        console.log('Żaden klient nie jest zalogowany.');
    }
}
JPresta Cache Warmer

Liczba stron do wygenerowania różni się, ponieważ moduł generuje tylko strony, które nie mają pamięci podręcznej, mają wygasłą pamięć podręczną lub mają pamięć podręczną, która wygaśnie w ciągu 24 godzin.

Możesz zauważyć okresowe skoki liczby stron do wygenerowania, gdy pamięć podręczna wygasa, jest to normalne.