Prestashop

FAQ

Løsninger på almindelige spørgsmål og problemer ved brug af Clerk med PrestaShop

Har du problemer med din PrestaShop-integration? Denne FAQ dækker de mest almindelige problemer og deres løsninger, fra formatters til synkroniseringsfejl.

Brug af formatters #

Clerk.js giver dig mulighed for at skrive brugerdefinerede JavaScript-funktioner, som tilføjer ny funktionalitet til dine Designs.

Formatters kan tilføjes på to måder:

  • Gennem my.clerk.io > Developers > Formatters, hvor hver Formatter kan oprettes som separate poster.

  • Som en konfiguration for Clerk.js, i tracking-scriptet der indsættes på alle sider, hvor flere formatters kan tilføjes på én gang.

For PrestaShop indeholder denne fil tracking-scriptet:

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

Eksempel på formatter #

Et eksempel kan ses nedenfor. Bemærk at dette er Clerk V2 (seneste version):

<!-- 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 -->

Flere formatters #

Du kan skrive et vilkårligt antal Formatters, adskilt af komma:

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;
  }
}

Brug i designs #

Efter at have oprettet dine Formatters, kan du bruge dem i dine Designs med denne syntaks:

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

Dette gør det muligt at tilføje enhver funktionalitet i dine Designs, som du har brug for.

HTTP-godkendelse #

HTTP-godkendelse anvendes ofte på staging-sites for at undgå uønskede besøgende.

Dette vil blokere Clerk-importøren og vise en 401 Unauthorized-fejl i synkroniseringsloggen.

Du kan løse dette ved at indsætte autentificeringsoplysningerne i import-URL’en.

I my.clerk.io > Data > Configuration, opdater din import-URL som dette:

https://USER:PASS@www.ewoksRus.com

Almindelige synkroniseringsfejl #

Bemærk: Vi anbefaler altid at opdatere modulet til den nyeste version for at få alle opdaterede funktioner fra Clerk.

Når du importerer data med Clerks PrestaShop-modul, er din webshops server ansvarlig for at sende produkt-, kategori- og salgsdata til Clerk.

Dog kan serverens konfiguration i visse tilfælde blokere importen fra at få adgang til dataene, hvilket forårsager en fejl i Data Sync.

Herunder finder du en liste over de mest almindelige fejl og hvordan de løses.

401 Unauthorized #

Denne fejl opstår, hvis din webshop eller udviklingsmiljø kræver HTTP-godkendelse for at få adgang.

Dette løses ved at indsætte Brugernavn og Adgangskode som en del af Import-URL’en:

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

403 Forbidden #

Denne fejl opstår, hvis din server blokerer for importørens adgang.

I de fleste tilfælde skal du blot whiteliste importørens IP-adresse for at give adgang.

Den nyeste IP-adresse kan findes her.

Tjek også at din public key, private key og import-URL er korrekt for den butik, du arbejder med i my.clerk.io.

I nogle tilfælde vil denne fejl også blive vist, hvis du bruger forskellige sprogdomæner, såsom http://webshop.com/it.

Indtast i så fald det fulde sprog-specifikke domæne, du vil synkronisere, i import-URL’en.

Hvad hvis jeg allerede har whitelisted, men fejlen stadig opstår?

Der er nogle tilfælde, hvor du har whitelisted importørens IP-adresse, og fejlen stadig forekommer.

I disse tilfælde anbefaler vi, at du undersøger følgende:

  • Autentificeringsdelen af body’en kan være fjernet fra anmodningen af butikkens server.

  • Begrænsning i forbindelse med Cloudflare.

  • Kontroller, at importer-URL’en indeholder https.

404 Not Found #

Denne fejl opstår, hvis importøren ikke kunne få adgang til det link, der sender data fra webshoppen.

Ofte sker det fordi modulet enten:

  • Ikke er installeret

  • En cache forhindrer linket i at blive initialiseret

Sørg først for, at modulet er installeret korrekt.

Tøm dernæst din webshops cache, før du forsøger en ny import.

429 Too Many Requests #

Denne fejl opstår, hvis din server nægter importøren adgang på grund af for mange anmodninger.

Du kan løse dette ved at øge serverens anmodningsgrænse eller sætte Page Size til en højere værdi i my.clerk.io > Data > Configuration. En større page size betyder, at importøren sender færre, men større anmodninger.

Hvis du bruger hosting-udbyderen Byte.nl, returnerer importøren typisk denne fejl på grund af deres rate limiter. Kontakt i dette tilfælde Byte.nl og bed dem om at whiteliste importørens User-Agent “clerk”.

500 Internal Server Error #

Denne fejl betyder, at din server har haft en intern fejl og ikke kunne specificere, hvilken fejl der opstod.

I disse tilfælde bør du tjekke din Server Log for at identificere, hvilken proces der fejlede og hvorfor.

Ofte skyldes det blot et produkt med en ugyldig attribut eller en funktion, der kaldes forkert i webshoppen.

Hvis du har Facebook Pixel App installeret, kan denne forårsage en 500-fejl.

Prøv at deaktivere appen og kør en ny synkronisering. Hvis det så virker, bør du holde appen deaktiveret og manuelt indsætte Facebook Pixel i dit hoved-tema-fil i stedet.

Du kan også forsøge at aktivere Debug Mode i PrestaShop, hvilket vil vise den præcise fejlmeddelelse, når du får en 500-fejl.

AKTIVÉR ALTID Debug Mode via FTP, for at undgå potentielt at blive låst ude af PrestaShops Admin Panel. Se hvordan du gør det med FTP.

503 Service Unavailable #

Denne fejl er som regel midlertidig og skyldes, at serveren er for travl til at håndtere forespørgslen.

Prøv igen lidt senere.

Hvis problemet fortsætter, kan det betyde, at serveren er overbelastet med processer og er tæt på maksimal kapacitet.

Tjek serverbelastningen for at identificere om dette er tilfældet.

520 Unknown Error #

Typisk returneres denne fejl fra Cloudflare, og opstår ofte som følge af en flaskehals i PrestaShop, der forårsager problemer ved højere Page Size.

For at løse det, sæt Page Size til 50 og kør en ny synkronisering.

Ugyldigt svar #

Denne fejl opstår ofte, når man bruger Facebook Pixel-modulet, som indsætter en pixel i toppen af alle filer i PrestaShop.

Dette vil ofte få Data Sync til at fejle, fordi pixel’en forstyrrer de data, som Clerk forventer at modtage fra PrestaShop.

Løsningen er ganske enkel—du skal blot foretage en lille ændring i pspixel.php, som er filen, der genererer pixel’en.

Ofte findes denne i en af følgende 4 stier:

  • /modules/pspixel/pspixel.php

  • /modules/alcapixel/alcapixel.php

  • /modules/facebookpixel/facebookpixel.php

  • /modules/canonicalseo/canonicalseo.php

I filen, omkring linje 196, skal du indsætte følgende linje kode inde i public function hookHeader($params):

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

For at understøtte nyere data-synkronisering:

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

Gem den redigerede pspixel.php fil efter tilføjelsen af ovenstående betingelse.

Dette vil specifikt fjerne pixel’en fra de links, Clerk bruger til at importere data fra PrestaShop.

Deaktivering af CCC #

CCC (Concatenate, Combine and Cache) er en indbygget funktion i PrestaShop, som gør det muligt at reducere antallet af forespørgsler af dit tema og cache dem.

Nogle gange kan denne funktion forstyrre vores Data Sync proces og blokere den.

Hvis du oplever Data Sync-fejl, så åbne din PrestaShop backend og gå til:

Advanced Parameters > Performance

Find derefter sektionen kaldet:

CCC (Combine, Compress and Cache)

Deaktiver alle dens underfunktioner, gem, tøm PrestaShop-cachen og nyd det!

P.S.: Du kan opnå samme niveau af datakomprimering—og dermed hurtigere sideindlæsninger—ved at bruge et CDN eller et dedikeret PrestaShop-modul, der sørger for samme komprimiering og samling af biblioteker.

Opgrader til Clerk.js 2 #

Clerk.js 2 er en hurtigere og mere fleksibel version af vores JavaScript-bibliotek.

Det gør det lettere at installere Clerk på enhver webshop.

Da de to versioner fungerer en smule forskelligt, skal du dog følge disse trin for at opgradere succesfuldt.

De to hovedforskelle i Clerk.js 2 er, at Designs i my.clerk.io bruger Liquid templating-sproget, men de kan også nemt oprettes med Design Editor.

Opret designs #

Da Clerk.js 2 har en anden tilgang til Designs, skal du oprette nye.

Du kan oprette dine Clerk.js 2 Designs på én af to måder:

Design Editor mulighed #

  1. Gå til my.clerk.io > Recommendations/Search > Designs > New Design.

  2. Giv på den følgende skærm dit Design et Navn (vi anbefaler at tilføje “V2” så det er tydeligt, at du bruger Clerk.js 2).

  3. Vælg Design Type.

  4. Klik på Create Design når du er færdig.

  5. I Design Editor klikker du på et af de eksisterende elementer såsom navn, billede, knap osv. for at redigere det, eller træk og slip nye elementer til Designet for at tilføje mere information om produkterne.

  6. Klik på Save Design når du er færdig, og gå til Step 2 i vejledningen.

  7. Gå til Recommendations/Search > Elements og skift dit Clerk Element til at bruge dit nye Design.

  8. Klik på Update Element. Dette vil midlertidigt betyde, at de ikke vises på din webshop, indtil du er færdig med Step 2. Vælg det nye Design for alle Elementer, der skal opdateres.

Du er nu klar til at skifte til Clerk.js 2.

Opgrader modul #

ADVARSEL: Husk at tage backup af eventuelt ændrede filer, da de vil blive overskrevet.

Start med at downloade den nyeste version fra dette link:

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

Log derefter ind på din PrestaShop admin og gå til Modules And Services > Modules And Services.

På denne side skal du gøre følgende:

  1. Klik på Add New Module.

  2. Klik på Choose a file og upload clerk.zip filen du netop har downloadet.

  3. Klik på Upload this module.

PrestaShop vil nu vise en succesmeddelelse, som bekræfter, at dit modul nu er opgraderet.

Nu har du den nyeste version af Clerk til PrestaShop installeret, og Clerk.js 2 kører på din webshop!

Den fulde dokumentation for Clerk.js 2 kan findes her:

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

Håndtering af require.js #

Denne guide gælder kun op til v.4.4.1 af PrestaShop Clerk-udvidelsen.

I nogle opsætninger forhindrer Require.js Clerk.js i at blive indlæst, hvilket betyder, at hverken sliders eller søgeresultater vises.

Når det sker, vises følgende fejl i din konsol:

Uncaught ReferenceError: Clerk is not defined

Der er to måder at håndtere Require.js på. Begge fremgangsmåder kræver, at du foretager ændringer i tracking-scriptet i denne fil:

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

Include i Require.js #

Den bedste metode er at få Require.js til at genkende Clerk.

Indsæt require(['clerk'], function() {}); nederst i tracking scriptet.

Ignorér Require.js #

Hvis ovenstående løsning ikke virker, kan du ignorere Require.js.

Indsæt window.__clerk_ignore_requirejs = true; øverst i tracking scriptet.

Efter brug af en af disse metoder vil Require.js nu være kompatibel med Clerk.

Denne side er oversat af en hjælpsom AI, og der kan derfor være sproglige fejl. Tak for forståelsen.