How can we help you?
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.
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.
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.
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ć.
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.
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.
If you are using Nginx, then make sure your configuration is as follow:
"Proxy mode" must be ON, other options must be OFF.
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
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.
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.
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".
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.
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).
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:
Zastąp tę linię:
prestashop.emit('updateFacets', window.location.href);
.
By:
if (event.reason && event.reason.linkAction != 'refresh') { prestashop.emit('updateFacets', window.location.href); }
Uaktualnij Page Cache Ultimate przynajmniej do wersji 7.9.39, aby uzyskać pełną kompatybilność z modułem cookiesplus.
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ą
- 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.
- 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.
- Użyj adresu URL, który znajdziesz w menu "API" w konfiguracji modułu "Page Cache Ultimate"
W konfiguracji koszyka, w sekcji "Akcja dodawania do koszyka" wyłącz opcję "Otwórz koszyk".
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".
Tak, wszystkie zdjęcia z Twojego sklepu zostaną automatycznie przekonwertowane do formatu WEBP. Nawet obrazy z CMS lub innych modułów jak blog.
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ść").
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).
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!
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.
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".
tak, przeglądarki, które nie mogą odczytać formatu WEBP, otrzymają oryginalny format (JPG/PNG).
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.
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.
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.
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']; }
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
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.
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.
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 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
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);
}
}
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
W każdym razie nie musisz oznaczać modułów Google Tag Manager jako dynamicznych.
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 .
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.
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
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.
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ą
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.
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:
- Przejdź do konfiguracji Page Cache Ultimate (lub Speed Pack).
- Kliknij Tryb zaawansowany, a następnie Opcje.
- Ustaw opcję Max execution time in seconds na 90 sekund (lub mniej, jeśli jest już 90s).
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/
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.');
}
}
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.