Installazione manuale degli elementi #
WooCommerce è costruito su temi, il che spesso significa che il plugin Clerk.io non può inserire i nostri codici embed, perché gli hook non sono posizionati dove dovrebbero.
Questa guida spiega come inserire manualmente i codici in questo caso.
1. Trovare il file giusto #
1. Iniziare a individuare il proprio modulo di ricerca. È possibile farlo controllando il codice sorgente e trovando un testo unico per il campo.
2. Dopo averlo identificato, è necessario un buon metodo di ricerca nei file per trovarlo. Si consiglia di usare Sublime Text.
3. Aprire i file FTP del proprio negozio web e individuare public\html -> wp-content -> themes
4. Trascinare i temi sul desktop per copiarli sul computer. Questo vi permetterà di cercare nei file:
5. In Sublime andare su Progetto -> Aggiungi cartella al progetto
6. Scegliere la cartella themes salvata sul computer.
7. Ora è possibile cercare nei file, andando su Trova -> Trova nei file. Si può anche scegliere di cercare solo nei file .php, che normalmente è il tipo di file usato per i file tematici in WooCommerce:
2. Far funzionare il link alla pagina di ricerca #
Se avete già seguito la guida per l’impostazione della ricerca e avete creato una pagina in WooCommerce per i risultati della ricerca, ma il vostro campo di ricerca non si collega correttamente, ecco cosa dovete fare.
1. Iniziare a guardare il negozio web nel browser. Si consiglia di utilizzare Chrome.
2. Individuare l’HTML che sembra essere unico per il campo di ricerca. Ad esempio, searchform:
3. Cercatelo in Sublime per trovare un elenco di file in cui è contenuto:
4. Trovare il file corrispondente su FTP.
5. Ora è possibile modificare le impostazioni necessarie affinché Clerk.io si colleghi alla pagina corretta. Le 3 cose da modificare sono:
L’URL a cui il cliente è collegato, spesso presente nell’elemento
L’attributo “name” del campo di input, che deve essere “searchterm”.
Il campo di input nascosto con name=“post_type” deve essere commentato.
6. Un modulo di ricerca potrebbe avere questo aspetto prima di essere modificato:
7. E dovrebbe apparire così dopo la modifica:
8. Ora si dovrebbe essere collegati alla pagina di ricerca quando si cerca: www.mywebshop.com/soegeresultater?searchterm=test
Usare i formattatori nei disegni #
Clerk.js consente di scrivere funzioni javascript personalizzate, che aggiungono nuove funzionalità ai disegni.
I formattatori possono essere aggiunti in due modi:
- Attraverso my.clerk.io > Impostazioni > Formatters, dove ogni formattatore può essere creato come voce separata.
- Come configurazione per Clerk.js, nel tracking-script inserito in tutte le pagine, dove si possono aggiungere più formattatori contemporaneamente.
Per WooCommerce questo file contiene il tracking-script:
wp-content->plugins->clerkio->includes->class-clerk-visitor-tracking.php
Un esempio può essere visto qui sotto. Tenere presente che si tratta di Clerk V2 (ultima versione):
Clerk('config', {
key: 'O7UITkJIXqXibeQF9ONobiGGKYYKtbvh',
formatters: {
log_price: function(price) {
console.log(price);
}
});
È possibile scrivere un numero qualsiasi di Formatter, separati da una 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;
}
}
Dopo aver creato i formattatori, è possibile utilizzarli nei propri progetti utilizzando questa sintassi:
{%raw%}{{ price | log_price }} {{ price | calculate_discount | special_price }}{%endraw%}
In questo modo è possibile creare qualsiasi funzionalità necessaria nei propri progetti.
Sincronizzazione con HTTP Auth #
Spesso l’autenticazione HTTP viene utilizzata sui siti di staging per evitare visitatori non invitati.
Questo bloccherà anche l’importatore Clerk e visualizzerà un errore 401 Unauthorized nel log di sincronizzazione.
È possibile verificare facilmente l’importatore inserendo le informazioni di autenticazione nell’URL di importazione come di seguito, in Data Sync a my.clerk.io:
https//USER:PASS@www.ewoksRus.com
Problemi comuni di sincronizzazione #
> **Nota: ** Si consiglia di aggiornare sempre il plugin all’ultima versione per ottenere tutte le funzionalità aggiornate da Clerk.
Quando si importano i dati con il plugin WooCommerce di Clerk.io, il server del webshop è responsabile dell’invio dei dati relativi alle categorie di prodotto e alle vendite a Clerk.io.
Tuttavia, in alcuni casi, la configurazione del server potrebbe impedire l’accesso all’importazione, causando un errore in Data Sync.
Di seguito è riportato un elenco degli errori più comuni e di come risolverli.
401 Errore del server: Non autorizzato #
Questo errore si verifica se il vostro webshop/ambiente di sviluppo richiede l’autenticazione HTTP per accedervi.
Per risolvere questo problema è sufficiente inserire Nome utente e Password come parte dell’URL di importazione:
http://username:password@woocommerce.clerk.io
403 Errore del server: Vietato #
Questo errore si verifica se il server blocca l’accesso all’importatore. Nella maggior parte dei casi è sufficiente inserire in una whitelist l’indirizzo IP dell’importatore per consentirgli l’accesso.
L’indirizzo IP più recente [può essere trovato qui] (http://help.clerk.io/it/platform/data/sync/#whitelisting-the-importer-ip-address).
Verificare anche che la chiave pubblica, la chiave privata e l’url di importazione siano corretti per il negozio che si sta gestendo all’interno di my.clerk.io
**Cosa succede se ho già effettuato il whitelisting ma si verifica ancora lo stesso errore?
Ci sono alcuni casi in cui l’indirizzo IP dell’importatore è stato inserito nella whitelist e l’errore persiste:
La parte di autenticazione del corpo potrebbe essere stata rimossa dalla richiesta del server del negozio.
Limite di velocità del server per quanto riguarda cloudflares.
404 Errore del server: Non trovato #
Questo errore si verifica se l’importatore non è riuscito ad accedere al link che ci invia i dati dal negozio web. Nella maggior parte dei casi accade perché il plugin è o:
Non installato affatto
Disattivato a causa di un aggiornamento
Una cache causa la mancata inizializzazione del collegamento
I permalink di WooCommerce sono impostati su nome del post invece che su nome e mese.
Assicurarsi innanzitutto di aver installato correttamente il plugin e che sia attivato.
Se il plugin è stato aggiornato automaticamente di recente, WooCommerce a volte lo disattiva. Se ciò è accaduto, è sufficiente andare su Plugins > Clerk e fare clic su Activate per riattivarlo.
In secondo luogo, assicurarsi di svuotare la cache del webshop prima di provare una nuova importazione.
Se ancora non si sincronizza correttamente, andare in Impostazioni => Permalink e modificare le Impostazioni comuni in Mese e nome e premere Salva:
429 Errore del server: Troppe richieste #
Questo errore si verifica se il server nega l’accesso all’importatore a causa di un numero eccessivo di richieste in entrata.
È possibile risolvere il problema impostando un limite di richieste più alto per il proprio server o impostando Page Size su un valore più alto nell’importatore di Clerk.io, in modo che l’importatore faccia un numero minore di richieste più grandi:
Se si utilizza il provider Byte.nl, l’importatore di solito restituisce questo errore a causa del suo limitatore di velocità. In questo caso, è sufficiente contattare Byte.nl e chiedere loro di inserire nella whitelist l’User-Agent dell’importatore “clerk”.
500 Errore interno del server #
Questo errore significa che il vostro server ha riscontrato un errore interno e non è stato in grado di specificare quale errore si sia verificato.
In questi casi è possibile controllare il registro del server per identificare quale processo si è bloccato e perché. Nella maggior parte dei casi si tratta semplicemente di un prodotto con un attributo non valido o di una funzione chiamata in modo errato nel webshop.
Un esempio di questo tipo di errore potrebbe verificarsi quando si aggiorna sia WooCommerce che Klarna. In questo caso, il problema è creato dal plugin ‘woocommerce-gateway-klarna’ che non si aggiorna.
Se ciò accade, andare a woocommerce-gateway-klarna ->includes->variables-checkout.php .
Cercare:
if ( ! is_admin() && ! empty( $klarna_country )) {
e cambiarlo in:
if ( ! is_admin() && ! empty( $klarna_country ) && WC()->session ) {
###3 Errore del server: Servizio non disponibile
Questo errore è solitamente temporaneo ed è causato dal fatto che il server è troppo occupato per gestire la richiesta. Riprovare più tardi.
Se il problema continua a verificarsi, potrebbe significare che il server è sovraccarico di processi ed è vicino alla capacità massima.
Controllate il carico del server per verificare se è questo il caso.
520 Web Server ha restituito un errore sconosciuto #
Di solito questo errore viene restituito da CloudFlare e spesso si verifica a causa di un collo di bottiglia in Woocommerce che causa problemi con dimensioni di pagina più elevate. Per risolvere il problema, è sufficiente impostare la dimensione della pagina a 50 ed eseguire una nuova sincronizzazione:
522 Errore del server: Connessione interrotta #
Questo errore si verifica solitamente se il server è troppo occupato per rispondere o se il nostro importatore non può accedere al server.
Per prima cosa, attendere qualche minuto e riprovare a sincronizzare, per verificare se il server era occupato.
Se ancora non funziona, assicurarsi di inserire nella whitelist l’IP dell’importatore nella configurazione del server. L’indirizzo IP più recente [può essere trovato qui] (http://help.clerk.io/it/platform/data/sync/#whitelisting-the-importer-ip-address).
Risposta non valida restituita dall’API di WooCommerce #
Questo errore si verifica solitamente se è stato attivato il Debugging di WooCommerce. Non è mai una buona idea attivarlo in una configurazione live, perché rallenta le pagine e può mostrare messaggi di errore nel frontend.
Il problema di sincronizzazione si verifica se WooCommerce incontra un errore durante la generazione dei dati dei prodotti per l’importazione.
Questo può essere risolto disattivando il debug in wp-config.php impostando define(WP_DEBUG’, false).
Questa guida lo spiega in modo più dettagliato:
https://docs.woocommerce.com/document/woocommerce-product-search/api/debugging/
E questa guida spiega una soluzione alternativa:
https://aristath.github.io/blog/wp-hide-php-errors
Gli errori verranno comunque registrati anche quando non si è in modalità Debug, ma verranno registrati in un file.
Aggiornamento a Clerk.js 2 #
Clerk.js 2 è una versione più veloce e molto più flessibile della nostra libreria JavaScript che rende l’installazione di Clerk.io su qualsiasi negozio web un gioco da ragazzi.
Tuttavia, poiché le due versioni funzionano in modo leggermente diverso, è necessario seguire i seguenti passaggi per eseguire correttamente l’aggiornamento.
Le due differenze principali in Clerk.js 2 sono che i progetti in my.clerk.io utilizzano il Liquid linguaggio di template, ma possono anche essere facilmente creati utilizzando l’Editor di progetti.
Passo 1: Conversione dei progetti #
Poiché Clerk.js 2 ha un approccio diverso ai disegni, è necessario crearne di nuovi.
È possibile creare i progetti di Clerk.js 2 in due modi:
1. Utilizzando l’intuitivo Editor di progetti per creare nuovi progetti, come descritto nei punti seguenti.
2. Convertire i vecchi progetti. [Seguire questa guida per vedere come fare].(http://help.clerk.io/it/integrations/any-webshop/faq/#converting-designs-for-clerkjs-2)
1.1 Iniziare andando su my.clerk.io -> Raccomandazioni / Ricerca -> Disegni e fare clic su Nuovo disegno:
1.2. Scegliere Design Type e seguire la progettazione impostata da Wizzard.
1.3. Nell’Editor di design, cliccare su uno qualsiasi degli elementi esistenti come il nome, l’immagine, il pulsante, ecc. per modificarlo, oppure aggiungere nuovi elementi al design per aggiungere ulteriori informazioni sui prodotti.
1.4. Fare clic su Publish quando si è finito e passare al Fase 2 della guida.
1.5. Infine, andare su Raccomandazioni / Ricerca -> Contenuto e modificare il contenuto di Clerk.io per utilizzare il nuovo design.
1.6. Fare clic su Aggiornamento dei contenuti, in modo che non vengano temporaneamente visualizzati nel negozio web fino a quando non si è terminato il Fase 2.
1.7. Ecco! Ora siete pronti per passare a Clerk.js 2.
Passo 2: Aggiornare il plugin #
**ATTENZIONE: ricordatevi di fare un backup di tutti i file modificati, perché verranno sovrascritti.
L’aggiornamento del plugin può essere effettuato direttamente dall’amministrazione di WooCommerce.
Iniziare andando su Plugin->Add New
Quindi, cercare Clerk nel campo di ricerca a destra e fare clic su Aggiorna ora.
Ecco fatto! Ora è in esecuzione l’ultima versione di Clerk.io per WooCommerce e Clerk.js 2 è in esecuzione sul vostro negozio web!
Se avete già l’ultima versione, questo pulsante dirà semplicemente Attiva.
La documentazione completa di Clerk.js 2 è disponibile qui:
https://docs.clerk.io/docs/clerkjs-quick-start
Link che puntano al backend #
Di tanto in tanto, i plugin di Wordpress / Woocommerce fanno confusione con la regola di riscrittura di Wordpress.
La regola di riscrittura è l’insieme di configurazioni che assicurano che i link come questo
dominio.com/?p=123
diventino link belli e ottimizzati dal punto di vista SEO come
dominio.com/prodotto/mio-bellissimo-prodotto/
e sono effettivamente raggiungibili da voi e dai vostri clienti.
Se i vostri link non funzionano correttamente, procedete in questo modo:
1. Accedere al backend di Wordpress
2. Andare quindi a: Dashboard –> Impostazioni –> Permalink
3. Scorrere verso il basso e fare clic sul pulsante “Salva modifiche” in fondo alla pagina senza modificare nulla. Questo sovrascriverà la regola di riscrittura di Wordpress.
4. Una volta aggiornata la pagina, svuotate la cache di Wordpress (se presente) e attendete qualche minuto. Dovreste essere in grado di vedere nuovamente tutte le pagine del vostro sito web.
Se dopo tutto ciò non riuscite ancora a visitare le pagine del vostro sito web, contattateci all’indirizzo support@clerk.io, siamo qui per aiutarvi!
Avvertenze visualizzate nel backend e nel frontend #
Questo errore si verifica solitamente se è stato attivato il Debugging di WooCommerce. Non è mai una buona idea attivarlo su una configurazione live perché rallenta le pagine e potenzialmente mostra messaggi di errore nel frontend.
Il problema di sincronizzazione si verifica se WooCommerce incontra un errore durante la generazione dei dati dei prodotti per l’importazione.
Questo problema può essere risolto disattivando la modalità Debug attraverso il plugin o direttamente nei file di WooCommerce.
Gestione di require.js #
**Questa guida si applica solo quando si utilizza l’estensione WooCommerce Clerk fino alla v.1.7.1.
In alcune configurazioni, Require.js impedisce il caricamento di Clerk.js, il che significa che non verranno visualizzati i cursori o i risultati della ricerca.
Quando ciò accade, nella console viene visualizzato il seguente errore:
Uncaught ReferenceError: Clerk is not defined
Esistono due modi per gestire Require.js. Entrambi gli approcci richiedono di apportare modifiche al tracking-script in questo file:
wp-content -> plugins -> clerkio -> includes -> class-clerk-visitor-tracking.php.
Includere “clerkio” in Require.js
L’approccio migliore è cercare di far riconoscere a Require.js Clerk.io.
È possibile farlo inserendo require([‘clerk’], function() {}); in fondo allo script di tracciamento:
Utilizzo del plugin
Se si utilizza la versione v2.2.4 o successiva di Clerk.io, il debug può essere disattivato direttamente dalla pagina del plugin nel backend di WooCommerce.
Andate su Clerk -> Impostazioni di Clerk -> Guida al debug e fate clic su Disabilita la modalità di debug:
Oppure direttamente nei file
La modalità Debug può essere disattivata anche tramite FTP, in wp-config.php impostando define(WP_DEBUG’, false).
Questa guida lo spiega in modo più dettagliato:
https://docs.woocommerce.com/document/woocommerce-product-search/api/debugging/
Questa guida spiega una soluzione alternativa:
https://aristath.github.io/blog/wp-hide-php-errors
Gli errori verranno comunque registrati anche quando non si è in modalità Debug, ma verranno registrati in un file.
Ignorare Require.js
Se la soluzione precedente non funziona, è possibile ignorare Require.js.
Lo si può fare inserendo window._clerk_ignore_requirejs = true;
nella parte superiore dello script di tracciamento:
Dopo aver utilizzato uno di questi approcci, Require.js sarà ora compatibile con Clerk.io.