Page Cache Ultimate
Questi utenti falsi sono creati da Page Cache Ultimate per anonimizzare la cache (nuovo metodo). Non bisogna cancellarli (verranno creati di nuovo).
Non ci saranno molti utenti falsi, probabilmente meno di 5, dipende dal numero di gruppi e dalle differenze di visualizzazione tra di essi.
Non sono attivi, quindi non disturbano le statistiche.
Se avete un tema Anvato, ecco cosa fare per evitare che il carrello si apra ogni volta che viene aggiornato.
Copiare il file /modules/an_theme/views/js/sidebarcart.js nel proprio tema, in modo da poter continuare ad aggiornarlo senza perdere le modifiche, in /themes//modules/an_theme/views/js(creare cartelle se necessario)
In questo file, sostituire il link:
if (prestashop.page.page_name = 'cart' && prestashop.page.page_name = 'checkout') {
Da
if (prestashop.page.page_name != 'cart' && prestashop.page.page_name != 'checkout' && requestData.action!='refresh') {
Quindi cancellare la cache della pagina Performances e la cache del browser per poter effettuare il test.
Se il tema utilizza il tag "widgetblock" come il tema Warehouse, è necessario cancellare la cache nella pagina delle prestazioni dopo aver attivato la cache della pagina, in modo che il modello venga compilato di nuovo.
Tutti i nostri moduli possono funzionare su LiteSpeed Web Server, poiché supporta il file .htaccess di Apache.
Tuttavia, la funzione di cache HTML (Page Cache Ultimate) non è compatibile con il LiteSpeed Cache Plugin, poiché entrambi lavorano sullo stesso livello di cache.
Quale scegliere?
LiteSpeed Cache è una cache generica che non gestisce tutti i diversi contesti di Prestashop. Quali tasse vengono applicate? C'è una vendita flash in arrivo? Devo visualizzare un contenuto diverso per questo utente perché appartiene a un gruppo specifico di utenti? Questo visitatore ha accettato i cookie?
Page Cache Ultimate è stato creato per Prestashop ed è dedicato solo a questa piattaforma, gestisce tutti i diversi contesti e può anche aggiornarsi rapidamente se esce una nuova funzionalità di Prestashop.
Se si utilizza il modulo PageSpeed Apache sviluppato da Google (x-mod-pagespeed), è necessario disabilitare la seguente opzione, in modo da non sovrascrivere le direttive di cache del browser aggiunte da Page Cache:
ModPagespeedModifyCachingHeaders off
No, è altamente raccomandato mantenere la cache di Smarty abilitata. Questo velocizzerà le pagine che non sono nella cache e anche le pagine in cui la cache non è ancora generata.
Per recuperare gli stili è sufficiente cancellare la cache di "Page Cache Ultimate".
Per evitare questo problema si può andare in "Modalità avanzata", nella configurazione di "Page Cache Ultimate", quindi in "Chiave di cache" attivare "Inserisci versione CSS e JS nella chiave di cache".
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).
Se l'elenco dei prodotti viene ricaricato ogni volta che si visualizza una pagina con un elenco di prodotti, si può risolvere il problema modificando il file /warehouse/modules/ps_shoppingcart/ps_shoppingcart.js come segue:
Sostituire questa linea:
prestashop.emit('updateFacets', window.location.href);
Per:
if (event.reason && event.reason.linkAction != 'refresh') { prestashop.emit('updateFacets', window.location.href); }
Aggiornare Page Cache Ultimate alla versione 7.9.39 almeno per una piena compatibilità con il modulo cookiesplus.
Nella configurazione del carrello, nella sezione "Azione Aggiungi al carrello", disattivare l'opzione "Apri il carrello".
Questo è normale, quando la cache non è disponibile la visualizzazione è lenta come senza cache.
È necessario svuotare la cache solo quando è necessario (modifica di CSS o Javascript, per i modelli scegliere l'opzione "Ricompila i file dei modelli se sono stati aggiornati" nella pagina "Prestazioni").
Se l'elenco di selezione delle valute non funziona più, controllare queste due opzioni:
L'opzione "Ignora gli URL che corrispondono a questa regex" deve includere ".*SubmitCurrency=1.*", ad esempio ".*[\?&]q=.*|.*SubmitCurrency=1.*"
L'opzione "Parametri URL ignorati" non deve includere "submitcurrency,id_currency"
Si consiglia anche di disabilitare la cache del browser, perché se il visitatore cambia valuta dopo aver visualizzato diverse pagine, se torna a quelle pagine, verrà visualizzata la valuta originale.
Non dimenticare di cancellare il modulo e la cache del browser dopo queste modifiche.
Quando modifichi un prodotto, una categoria, una pagina CMS, un prezzo, lo stock, ecc. la cache si aggiorna automaticamente.
Quando aggiungi, elimini o modifichi un modulo, devi svuotare la cache manualmente perché questo non può essere rilevato automaticamente. Ad esempio, quando modifichi lo slider della home page.
Quando modifichi il CSS o un modello del tuo tema, devi svuotare la cache manualmente perché questo non può essere rilevato automaticamente.
Quando sincronizzi o modifichi il tuo catalogo, i tuoi prezzi e/o le tue scorte utilizzando un'applicazione esterna, probabilmente dovrai svuotare la cache manualmente o con uno script perché gli hook di Prestashop non vengono eseguiti.
Per cancellare la cache di pagine specifiche, puoi utilizzare gli URL CRON/API che troverai nel menu "API" nella configurazione di Page Cache Ultimate. Puoi anche utilizzare la tabella delle statistiche per filtrare le pagine che desideri aggiornare, quindi fare clic sul pulsante "Svuota cache (solo file)".
Tieni inoltre presente che la cache del browser non può essere cancellata, per questo è limitata nel tempo.
Questo accade perché il link di accesso viene caricato dinamicamente e quindi il parametro "back" che rimanda all'URL corrente viene impostato con l'URL dei moduli dinamici.
Per evitare questo problema, andate nella configurazione di Page Cache Ultimate, nel menu "Moduli dinamici e widget", in fondo aggiungete il seguente codice javascript al campo "Javascript da eseguire":
if (!prestashop_pc.customer.is_logged) {
$('header a').each(function() {
$(this).attr('href').replace('ajax%3Dtrue', '').replace('page_cache_dynamics_mods%3D=1', '')
});
}
Cancellare la cache dovrebbe risolvere il problema.
queste directory vengono create quando la cache non può essere cancellata completamente in PHP perché è troppo lunga e fallisce con un errore di timed out. Quindi, invece di cancellare la cartella della cache, viene semplicemente rinominata con questo suffisso.
È possibile cancellare tutte queste cartelle con il suffisso please_delete_me, ma si consiglia di farlo direttamente nella console del server, perché sarebbe troppo lungo farlo via FTP.
Questi ganci sono destinati agli sviluppatori di moduli; se avete bisogno di aiuto, contattate il supporto.
Ecco un esempio di come implementare le funzioni dei ganci:
/** * 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']; }
Il modulo Creative Elements consente di modificare parti del negozio con link/bottoni visualizzati direttamente sul negozio quando si è connessi all'amministrazione di Prestashop. Per preservare questa funzionalità, la cache viene disattivata con la motivazione "editing-with-creative-element". I visitatori beneficiano della cache, ma sono solo gli utenti collegati all'amministratore a non averla. Per ottenere la cache, è sufficiente visualizzare il negozio in una scheda privata del browser.
La prima cosa da fare è assicurarsi di avere l'ultima versione del modulo, perché lo sto costantemente migliorando per ridurre il consumo di memoria, sia sul database che sul disco rigido.
La seconda cosa è eseguire periodicamente un purge (ogni 2 o 3 giorni). Un purge rimuove dalla cache le pagine che non esistono più o il cui contesto non esiste più. Questo non influisce sulle prestazioni della cache. È possibile eseguire la pulizia manualmente tramite un pulsante nella tabella delle statistiche della cache, oppure programmando un task CRON con l'URL visualizzato nel menu "API (URL CRON)" nella configurazione del modulo.
Infine, se ci sono cartelle in /var/cache/pagecache che terminano con "please_delete_me", è possibile cancellarle. Si tratta di una vecchia cache che PHP non è riuscito a cancellare completamente (troppo lunga).
Quando si tenta di installare Page Cache Ultimate si ottiene il messaggio di errore "Questo file non sembra essere un file .zip del modulo valido"? È normale, poiché il file zip contiene diversi file zip che consentono di installare questo modulo a seconda della versione di Prestashop: PS-1.5/1.6, PS1.7/8 e Thirtybees.
È quindi necessario estrarre e installare il file zip più adatto al proprio negozio.
La cache statica può essere utilizzata solo se si conosce il contesto del visitatore. Il contesto contiene una serie di informazioni che non possono essere dedotte dal solo URL: valuta, gruppi di utenti, scelta dei cookie, tasse da applicare, ecc.
Questo contesto è memorizzato in un cookie chiamato "jpresta_cache_context" che viene aggiunto quando l'utente visualizza una prima pagina. Una volta che il cookie è presente, è possibile utilizzare la cache statica.
Andare alla configurazione del modulo, nel menu "Sistema di cache" assicurarsi che "Prestashop Static!" sia selezionato. Se è già selezionata, selezionare "File system standard" e salvare, quindi selezionare "Prestashop Static!" e salvare nuovamente. In questo modo si riattiva la cache statica.
Il messaggio "prezzi specifici per il cliente" significa che si è collegati a un utente che ha regole di prezzo specifiche, quindi non ha senso creare una cache perché solo lui potrà usufruirne. È preferibile creare gruppi di utenti e creare regole di prezzo per questi gruppi.
Forse stai simulando uno schermo di telefono utilizzando la console del tuo browser, il che spiega perché stai vedendo questa vista mobile nonostante tu abbia uno schermo desktop.
Ciò accade perché un cookie chiamato 'jpresta_cache_context' memorizza il contesto del visitatore nel browser. Questo contesto include informazioni su se la visualizzazione è 'mobile' o 'desktop'. Pertanto, se visualizzi inizialmente le pagine in modalità desktop e poi passi alla modalità mobile, la cache continuerà a fornire la visualizzazione desktop.
Se desideri testare la visualizzazione mobile utilizzando la console del tuo browser, assicurati di eliminare il cookie 'jpresta_cache_context' in anticipo.
Se si utilizza il modulo "Google Tag Manager Enhanced Ecommerce" creato da "Comptoir du code", assicurarsi di ottenere l'ultima versione del modulo e di attivare l'opzione specifica per l'uso con i moduli full page cache.
In ogni caso, non è necessario contrassegnare i moduli di Google Tag Manager come dinamici.
Quando convalidi i passaggi di configurazione, assicurati di eseguire la configurazione automatica al passaggio 4. Ciò configura il modulo Page Cache Ultimate per tutti i moduli conosciuti come il carrello degli acquisti. Dovresti fare affidamento su questa configurazione automatica e apportare modifiche manuali solo quando qualcosa non funziona come al solito quando la cache è abilitata.
Il punteggio calcolato da Pagespeed e GTMetrix include un numero molto elevato di parametri la cui importanza varia a seconda che si utilizzi un telefono cellulare o un computer.
Il modulo Prestashop Speed Pack ti consente di correggere i seguenti punti segnalati da Pagespeed Insight o GT Metrix:
- Riduci i tempi di risposta del server/TTFB (Page Cache Ultimate)
- Offrire immagini in formati di nuova generazione (compressione WEBP delle immagini)
- Rinvio delle immagini fuori schermo (caricamento lento delle immagini)
Altri parametri come l'LCP non possono essere corretti da un modulo. Ad esempio, questo LCP indica il ritardo di visualizzazione dell'elemento più grande visualizzato per primo; spesso è degradato dall'uso di un carosello che visualizza le immagini utilizzando un sistema di caricamento lento o perché il codice javascript che lo inizializza è troppo lento. Questo tipo di problema può essere risolto solo manualmente.
Inoltre, per essere sicuro che il calcolo del punteggio sia stato eseguito con una cache disponibile, eseguilo due volte.
Ti invito a leggere il mio articolo Capire e migliorare il punteggio Pagespeed del vostro negozio Prestashop
Una pagina può avere più versioni nella cache a seconda del contesto del visitatore. Questo contesto include informazioni come la valuta selezionata, il gruppo dell'utente, le preferenze del visitatore riguardo ai cookie, le regole fiscali applicabili a questo visitatore, il paese del visitatore se rilevante, ecc. Pertanto, potresti non ricevere la pagina memorizzata nella cache quando visualizzi una pagina perché il tuo contesto è diverso.
Moduli come "Creative Slider" utilizzano codici brevi per facilitare la visualizzazione dei contenuti. Questo avviene di solito nel gancio "actionOutputHTMLBefore", quindi è sufficiente assicurarsi che il modulo cache sia posizionato dopo tutti i moduli di questo gancio. Andare in "Design" > "Posizioni", selezionare l'opzione "Visualizza ganci non posizionabili", cercare il gancio "actionOutputHTMLBefore" e spostare il modulo Page Cache Ultimate o Speed Pack alla fine.
Una volta fatto, è necessario cancellare la cache
Questo errore è dovuto a una nuova restrizione di sicurezza implementata dal mio provider di hosting (OVH) su tutti i loro server.
Per risolverlo, è necessario aggiornare i miei moduli all'ultima versione.
Non sarà possibile farlo utilizzando il modulo JPresta Easy Upgrade, poiché anche questo richiede un aggiornamento.
Per effettuare l'aggiornamento, passa tramite Addons o scarica il file zip dal tuo account JPresta. Per Page Cache Ultimate e Speed Pack, è necessario estrarre lo zip per trovare quello che corrisponde alla tua versione di PrestaShop. Una volta trovato lo zip corretto, installalo come un nuovo modulo per aggiornare la versione corrente mantenendo la configurazione.
Non ti preoccupare, dopo questo, potrai continuare ad aggiornare con JPresta Easy Upgrade come al solito.