Prestashop

FAQ

Soluzioni a domande e problemi comuni quando si utilizza Clerk con PrestaShop

Riscontri problemi con l’integrazione PrestaShop? Questa FAQ copre i problemi più comuni e le loro soluzioni, dai formatter agli errori di sincronizzazione.

Utilizzo dei formatter #

Clerk.js ti permette di scrivere funzioni JavaScript personalizzate che aggiungono nuova funzionalità ai tuoi Designs.

I formatter possono essere aggiunti in due modi:

  • Tramite my.clerk.io > Developers > Formatters, dove ogni Formatter può essere creato come voce separata.

  • Come configurazione per Clerk.js, nello tracking-script inserito in tutte le pagine, dove è possibile aggiungere più formatter contemporaneamente.

Per PrestaShop, questo file contiene lo tracking-script:

modules->clerk->views->templates->hook->clerk_js.tpl

Esempio di formatter #

Un esempio è visibile qui sotto. Attenzione che questa è Clerk V2 (ultima versione):

<!-- Start of Clerk.io E-commerce Personalisation tool - www.clerk.io -->
<script type="text/javascript">
  (function(w,d){
    var e=d.createElement('script');e.type='text/javascript';e.async=true;
    e.src='https://cdn.clerk.io/clerk.js';
    var s=d.getElementsByTagName('script')[0];s.parentNode.insertBefore(e,s);
    w.__clerk_q=w.__clerk_q||[];w.Clerk=w.Clerk||function(){ w.__clerk_q.push(arguments) };
  })(window,document);

  Clerk('config', {
        key: '{$clerk_public_key}',
        collect_email: {$clerk_datasync_collect_emails},
        language: '{$language}',
        formatters: {
             log_price: function(price) {
             console.log(price);
          }
      },
    });
</script>
<!-- End of Clerk.io E-commerce Personalisation tool - www.clerk.io -->

Formatter multipli #

Puoi scrivere qualsiasi numero di Formatters, separati da virgola:

formatters: {
  log_price: function(price) {
    console.log(price);
  },
  calculate_discount: function(price, special_price) {
    return price - special_price;
  },
  substring: function(text) {
    var short_string = text.substring(0, 20);
    return short_string;
  }
}

Utilizzo nei designs #

Dopo aver creato i tuoi Formatters, puoi usarli nei tuoi Designs con questa sintassi:

{% raw %}{{ price | log_price }} {{ price | calculate_discount | special_price }}{% endraw %}

Questo ti permette di creare qualsiasi funzionalità nei tuoi Designs di cui hai bisogno.

Autenticazione HTTP #

L’autenticazione HTTP è spesso usata su siti di staging per evitare visitatori indesiderati.

Ciò bloccherà l’importatore Clerk e mostrerà un errore 401 Unauthorized nel log di sincronizzazione.

Puoi risolvere questo problema inserendo le informazioni di autenticazione nell’URL di importazione.

In my.clerk.io > Data > Configuration, aggiorna il tuo URL di importazione così:

https://USER:PASS@www.ewoksRus.com
HTTP authentication in import URL

Errori comuni di sincronizzazione #

Nota: Si consiglia di aggiornare sempre il modulo all’ultima versione per ottenere tutte le funzionalità più recenti da Clerk.

Durante l’importazione dei dati con il modulo PrestaShop di Clerk, il server del tuo webshop è responsabile dell’invio dei dati prodotto, categoria e vendita a Clerk.

Tuttavia, a volte, la configurazione del server potrebbe bloccare l’importazione dall’accesso ai dati, causando un errore in Data Sync.

Di seguito trovi una lista degli errori più comuni e come risolverli.

401 Unauthorized #

Questo errore si presenta se il tuo webshop o ambiente di sviluppo richiede l’autenticazione HTTP per accedervi.

Si risolve inserendo Username e Password come parte dell’URL di Importazione:

http://username:password@prestashop.clerk.io/clerk/api/store/1

403 Forbidden #

Questo errore si presenta se il server blocca l’importatore dall’accedervi.

Nella maggior parte dei casi, è sufficiente whitelistare l’indirizzo IP dell’importatore per concedergli l’accesso.

L’indirizzo IP più recente può essere trovato qui.

Verifica anche che la tua public key, private key e import URL siano corretti per il negozio su cui stai operando in my.clerk.io.

In alcuni casi, questo errore apparirà anche se usi differenti domini-lingua, come http://webshop.com/it.

In questi casi, assicurati di includere il dominio completo che vuoi sincronizzare:

Language domain configuration

Cosa succede se ho già whitelistato ma l’errore si ripresenta comunque?

Ci sono alcuni casi in cui l’indirizzo IP dell’importatore è stato whitelistato, ma l’errore persiste.

In queste situazioni, ti consigliamo di controllare questi aspetti:

  • La parte di autenticazione del body potrebbe essere rimossa dalla richiesta dal server del negozio.

  • Limite di frequenza del server riguardo a Cloudflare.

  • Ricontrolla che l’URL dell’importatore includa https.

404 Not Found #

Questo errore si verifica se l’importatore non riesce ad accedere al link che invia dati dal webshop.

Nella maggior parte dei casi, ciò accade perché il modulo è:

  • Non installato affatto

  • Una cache causa la non inizializzazione del link

Per prima cosa, assicurati di aver installato correttamente il modulo.

Poi, svuota la cache del tuo webshop prima di tentare una nuova importazione.

429 Too Many Requests #

Questo errore si verifica se il server nega l’accesso all’importatore a causa di un numero eccessivo di richieste in ingresso.

Puoi risolverlo impostando il request limit più alto per il server o aumentando il valore di Page Size in my.clerk.io > Data > Configuration, facendo sì che l’importatore effettui meno richieste, ma più grandi:

Page size configuration

Se usi il provider Byte.nl, l’importatore di solito restituisce questo errore per il loro limite di frequenza. In questo caso, contatta Byte.nl e chiedi di whitelistare lo User-Agent dell’importatore “clerk”.

500 Internal Server Error #

Questo errore significa che il tuo server ha riscontrato un errore interno e non è stato in grado di specificare quale errore sia avvenuto.

In questi casi, controlla il Server Log per identificare quale processo è andato in crash e perché.

Nella maggior parte dei casi, è semplicemente a causa di un prodotto con un attributo non valido, o di una funzione chiamata in modo errato nel webshop.

Se hai installato la Facebook Pixel App, è noto che questa causi un errore 500.

Prova a disattivare l’applicazione e ad eseguire una nuova sincronizzazione. Se poi funziona, mantieni l’App disattivata e copia manualmente il Pixel di Facebook nel file principale del tema.

Puoi anche provare ad attivare la Debug Mode in PrestaShop, che mostrerà il messaggio di errore esatto in caso di errore 500.

ATTIVA SEMPRE la Debug Mode tramite FTP, per evitare di restare bloccato fuori dal pannello di amministrazione di PrestaShop. Verifica come fare con FTP.

503 Service Unavailable #

Questo errore di solito è temporaneo ed è causato dal server troppo occupato per gestire la richiesta.

Riprova più tardi.

Se il problema persiste, potrebbe significare che il server è sovraccarico di processi ed è vicino alla capacità massima.

Controlla il carico del server per verificare se è questo il caso.

520 Unknown Error #

Di solito questo errore viene restituito da Cloudflare e capita spesso a causa di un collo di bottiglia in PrestaShop che causa problemi con Page Size elevati.

Per risolverlo, imposta il tuo Page Size a 50 ed esegui una nuova sincronizzazione:

Page size set to 50

Risposta non valida #

Questo errore è spesso causato dall’utilizzo del Modulo Facebook Pixel, che inserisce un pixel in cima a tutti i file in PrestaShop.

Spesso questo causa il fallimento della Data Sync, perché il pixel interferisce con i dati che Clerk deve ricevere da PrestaShop.

La soluzione è molto semplice: devi apportare una piccola modifica a pspixel.php, il file che genera il pixel.

Spesso questo si trova in uno dei seguenti 4 percorsi:

  • /modules/pspixel/pspixel.php

  • /modules/alcapixel/alcapixel.php

  • /modules/facebookpixel/facebookpixel.php

  • /modules/canonicalseo/canonicalseo.php

Nel file, intorno alla riga 196, inserisci la seguente riga di codice all’interno della public function hookHeader($params):

if (strpos($_SERVER['REQUEST_URI'], '/module/clerk/') !== false) {
    return;
}

Per supportare la nuova data-sync:

if (Tools::getValue('module') == 'clerk') {
    return;
}

Alla fine, il file dovrebbe essere simile a questo:

Facebook Pixel code modification

In questo modo il pixel verrà rimosso specificatamente dai link che Clerk usa per importare i dati da PrestaShop.

Disattivare CCC #

CCC (Concatenate, Combine and Cache) è una funzione integrata di PrestaShop che ti permette di ridurre il numero di richieste del tuo template e di memorizzarle nella cache.

A volte questa funzione può interferire con il nostro Data Sync e bloccarlo.

Se riscontri errori di Data Sync, apri il backend di PrestaShop e visita:

Advanced Parameters > Performance

Poi vai alla sezione chiamata:

CCC (Combine, Compress and Cache)
CCC settings in PrestaShop

Disattiva tutte le sue sotto-funzionalità, poi salva, svuota la cache di PrestaShop e voilà!

P.S: Puoi ottenere lo stesso livello di compressione dei dati—e quindi prestazioni di caricamento pagina—utilizzando un CDN o un modulo PrestaShop dedicato che applica la stessa compressione e combinazione delle librerie.

Aggiornamento a Clerk.js 2 #

Clerk.js 2 è una versione più veloce e flessibile della nostra libreria JavaScript.

Rende più semplice l’installazione di Clerk su qualsiasi webshop.

Tuttavia, dato che le due versioni funzionano in modo leggermente diverso, devi seguire questi passaggi per aggiornare con successo.

Le due differenze principali in Clerk.js 2 sono che i Designs in my.clerk.io usano il linguaggio di templating Liquid, ma possono anche essere creati facilmente tramite il Design Editor.

Creare designs #

Poiché Clerk.js 2 ha un approccio diverso ai Designs, devi crearne di nuovi.

Puoi creare i tuoi Clerk.js 2 Designs in uno di questi due modi:

Opzione Design Editor #

  1. Vai su my.clerk.io > Recommendations/Search > Designs > New Design.
New design in Clerk
  1. Nella schermata successiva, dai un Nome al tuo Design (ti consigliamo di aggiungere “V2” così è chiaro che stai usando Clerk.js 2).

  2. Scegli il Tipo di Design.

  3. Quando hai finito, clicca su Create Design.

Create design button
  1. Nel Design Editor, clicca su uno degli elementi esistenti come nome, immagine, pulsante, ecc. per modificarlo, oppure trascina nuovi elementi nel Design per aggiungere ulteriori informazioni sui prodotti.

  2. Clicca su Save Design quando hai finito e vai su Step 2 della guida.

Design Editor interface
  1. Vai su Recommendations/Search > Content e modifica il tuo Clerk Content per usare il nuovo Design.

  2. Clicca su Update Content. Questo comporterà temporaneamente che non vengano mostrati sul tuo webshop finché non avrai completato lo Step 2. Scegli il nuovo Design per tutti i Content che devono essere aggiornati.

Update content with new design

Ora sei pronto per passare a Clerk.js 2.

Aggiornamento modulo #

ATTENZIONE: Ricordati di fare backup dei file modificati, poiché verranno sovrascritti.

Inizia scaricando l’ultima versione da questo link:

https://github.com/clerkio/clerk-prestashop/releases/latest

Download latest PrestaShop module

Poi accedi al tuo admin PrestaShop e vai su Modules And Services > Modules And Services.

Modules and Services in PrestaShop

In questa pagina, esegui le seguenti operazioni:

  1. Clicca su Add New Module.

  2. Clicca su Choose a file e carica il file clerk.zip appena scaricato.

  3. Clicca su Upload this module.

Upload module in PrestaShop

PrestaShop ora mostrerà un messaggio di successo, confermando che il modulo è stato aggiornato.

Ora hai l’ultima versione di Clerk per PrestaShop installata e Clerk.js 2 è in esecuzione sul tuo webshop!

La documentazione completa di Clerk.js 2 è disponibile qui:

https://docs.clerk.io/docs/clerkjs-quick-start

Gestione di require.js #

Questa guida si applica solo quando si utilizza fino alla versione v.4.4.1 dell’estensione PrestaShop Clerk.

In alcune configurazioni, Require.js impedisce il caricamento di Clerk.js, il che significa che non verranno mostrati slider o risultati di ricerca.

Quando ciò si verifica, verrà mostrato nel console il seguente errore:

Uncaught ReferenceError: Clerk is not defined

Ci sono due modi per gestire Require.js. Entrambi richiedono una modifica dello tracking-script in questo file:

modules->clerk->views->hook->visitor_tracking.tpl

Includere in Require.js #

L’approccio migliore è cercare di far riconoscere Clerk a Require.js.

Puoi farlo inserendo require(['clerk'], function() {}); in fondo allo tracking script:

Include clerk in Require.js

Ignorare Require.js #

Se la soluzione sopra non funziona, è possibile ignorare Require.js.

Puoi farlo inserendo window.__clerk_ignore_requirejs = true; in cima allo tracking script:

Ignore Require.js

Dopo aver utilizzato uno di questi metodi, Require.js sarà ora compatibile con Clerk.

Questa pagina è stata tradotta da un'utile intelligenza artificiale, quindi potrebbero esserci errori linguistici. Grazie per la comprensione.