Prestashop

FAQ

Lösungen für häufige Fragen und Probleme bei der Verwendung von Clerk mit PrestaShop

Haben Sie Probleme mit Ihrer PrestaShop-Integration? Dieses FAQ behandelt die häufigsten Probleme und deren Lösungen, von Formattern bis zu Synchronisierungsfehlern.

Verwendung von Formatters #

Clerk.js ermöglicht es Ihnen, eigene JavaScript-Funktionen zu schreiben, die Ihren Designs neue Funktionalitäten hinzufügen.

Formatters können auf zwei Arten hinzugefügt werden:

  • Über my.clerk.io > Developers > Formatters, wobei jeder Formatter als separater Eintrag erstellt werden kann.

  • Als Konfiguration für Clerk.js im Tracking-Skript, welches auf allen Seiten eingefügt wird und in dem mehrere Formatter gleichzeitig hinzugefügt werden können.

Für PrestaShop enthält diese Datei das Tracking-Skript:

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

Beispiel-Formatter #

Ein Beispiel ist unten zu sehen. Beachten Sie, dass dies Clerk V2 (neueste Version) ist:

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

Mehrere Formatter #

Sie können beliebig viele Formatter schreiben, getrennt durch Kommas:

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

Verwendung in Designs #

Nach dem Erstellen Ihrer Formatter können Sie diese in Ihren Designs mit folgender Syntax verwenden:

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

Dies ermöglicht es Ihnen, jede gewünschte Funktionalität in Ihren Designs zu erstellen.

HTTP-Authentifizierung #

HTTP-Authentifizierung wird häufig auf Staging-Seiten verwendet, um unerwünschte Besucher fernzuhalten.

Dies blockiert den Clerk-Importer und zeigt einen 401 Unauthorized-Fehler im Sync-Log an.

Sie können dies beheben, indem Sie die Authentifizierungsinformationen in die Import-URL einfügen.

In my.clerk.io > Data > Configuration aktualisieren Sie Ihre Import-URL wie folgt:

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

Häufige Synchronisierungsfehler #

Hinweis: Wir empfehlen, das Modul immer auf die neueste Version zu aktualisieren, um alle aktuellen Features von Clerk zu erhalten.

Beim Import von Daten mit dem PrestaShop-Modul von Clerk ist der Server Ihres Webshops dafür verantwortlich, Produkt-, Kategorie- und Verkaufsdaten an Clerk zu senden.

In einigen Fällen kann jedoch die Server-Konfiguration den Import blockieren, sodass die Daten nicht abgerufen werden können und in Data Sync ein Fehler auftritt.

Nachfolgend finden Sie eine Liste der häufigsten Fehler mit Anleitungen zur Behebung.

401 Unauthorized #

Dieser Fehler tritt auf, wenn Ihr Webshop oder Ihre Entwicklungsumgebung eine HTTP-Authentifizierung für den Zugriff benötigt.

Dies wird behoben, indem Benutzername und Passwort als Teil der Import-URL eingefügt werden:

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

403 Forbidden #

Dieser Fehler tritt auf, wenn Ihr Server den Zugriff des Importers blockiert.

In den meisten Fällen müssen Sie lediglich die IP-Adresse des Importers whitelisten, um Zugriff zu gewähren.

Die aktuelle IP-Adresse finden Sie hier.

Überprüfen Sie außerdem, ob Ihr Public Key, Private Key und die Import-URL für den Shop, den Sie in my.clerk.io verwenden, korrekt sind.

Manchmal wird dieser Fehler auch angezeigt, wenn Sie verschiedene Sprachdomains nutzen, wie z. B. http://webshop.com/it.

Stellen Sie in diesem Fall sicher, dass Sie die vollständige Domain angeben, die Sie synchronisieren möchten:

Language domain configuration

Was ist, wenn ich bereits whiteliste, der Fehler aber weiterhin auftritt?

Es gibt einige Fälle, in denen Sie die IP-Adresse des Importers hinzugefügt haben, der Fehler aber weiterhin besteht.

In diesen Fällen empfehlen wir, folgende Punkte zu prüfen:

  • Der Authentifizierungsteil des Bodys wurde möglicherweise von der Anfrage seitens des Shop-Servers entfernt.

  • Serverseitiges Rate-Limit im Zusammenhang mit Cloudflare.

  • Überprüfen Sie, ob die Importer-URL https enthält.

404 Not Found #

Dieser Fehler tritt auf, wenn der Importer den Link nicht aufrufen konnte, der die Daten aus dem Webshop sendet.

In den meisten Fällen passiert dies, weil das Modul entweder:

  • Nicht installiert ist

  • Ein Cache verhindert, dass der Link initialisiert wird

Stellen Sie zuerst sicher, dass Sie das Modul korrekt installiert haben.

Leeren Sie danach den Cache Ihres Webshops, bevor Sie einen neuen Import versuchen.

429 Too Many Requests #

Dieser Fehler tritt auf, wenn Ihr Server dem Importer wegen zu vieler Anfragen den Zugriff verweigert.

Sie können dies beheben, indem Sie das Anfragelimit für Ihren Server erhöhen oder die Page Size in my.clerk.io > Data > Configuration erhöhen, sodass der Importer weniger, aber größere Anfragen stellt:

Page size configuration

Wenn Sie den Hosting-Anbieter Byte.nl verwenden, gibt der Importer diesen Fehler meist wegen des Rate Limiters zurück. Wenden Sie sich in diesem Fall an Byte.nl und bitten Sie sie, den User-Agent des Importers “clerk” zu whitelisten.

500 Internal Server Error #

Dieser Fehler bedeutet, dass Ihr Server auf einen internen Fehler gestoßen ist und nicht angeben konnte, welcher Fehler aufgetreten ist.

Überprüfen Sie in diesen Fällen das Server-Log, um zu erkennen, welcher Prozess abgestürzt ist und warum.

In den meisten Fällen liegt dies lediglich an einem Produkt mit ungültigem Attribut oder einer Funktion, die im Webshop falsch aufgerufen wird.

Wenn Sie die Facebook Pixel App installiert haben, ist dies bekannt dafür, einen 500-Fehler zu verursachen.

Versuchen Sie, die App zu deaktivieren, und führen Sie eine neue Synchronisierung durch. Wenn es dann funktioniert, lassen Sie die App deaktiviert und kopieren Sie das Facebook Pixel manuell in Ihre Haupt-Theme-Datei.

Sie können außerdem versuchen, den Debug Mode in PrestaShop zu aktivieren, der die genaue Fehlermeldung anzeigt, wenn Sie einen 500-Fehler erhalten.

Aktivieren Sie den Debug Mode IMMER per FTP, um zu vermeiden, dass Sie möglicherweise aus dem Admin-Panel von PrestaShop ausgesperrt werden. Schauen Sie hier nach, wie es per FTP geht.

503 Service Unavailable #

Dieser Fehler ist in der Regel temporär und wird verursacht, wenn der Server zu ausgelastet ist, um die Anfrage zu bearbeiten.

Versuchen Sie es später noch einmal.

Falls das Problem weiterhin besteht, könnte der Server überlastet sein und an seine Kapazitätsgrenze stoßen.

Überprüfen Sie die Serverlast, um zu sehen, ob dies der Fall ist.

520 Unknown Error #

Dieser Fehler kommt in der Regel von Cloudflare und tritt häufig durch einen Engpass in PrestaShop auf, der bei größeren Page Sizes Probleme verursacht.

Um dies zu beheben, stellen Sie die Page Size auf 50 und führen Sie eine neue Synchronisierung durch:

Page size set to 50

Ungültige Antwort #

Dieser Fehler tritt häufig beim Einsatz des Facebook Pixel Moduls auf, das ein Pixel am Anfang aller Dateien in PrestaShop einfügt.

Dadurch schlägt die Data Sync oft fehl, da das Pixel die Daten beeinträchtigt, die Clerk eigentlich von PrestaShop erhalten soll.

Die Behebung ist recht einfach—Sie müssen lediglich eine kleine Änderung in der Datei pspixel.php vornehmen, die das Pixel generiert.

Oft befindet sich diese Datei in einem der folgenden 4 Pfade:

  • /modules/pspixel/pspixel.php

  • /modules/alcapixel/alcapixel.php

  • /modules/facebookpixel/facebookpixel.php

  • /modules/canonicalseo/canonicalseo.php

Fügen Sie in der Datei ca. bei Zeile 196 folgende Codezeile innerhalb der public function hookHeader($params) ein:

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

Für die Unterstützung der neueren Datensynchronisierung:

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

Am Ende sollte die Datei wie folgt aussehen:

Facebook Pixel code modification

Dadurch wird das Pixel spezifisch von den Links entfernt, die Clerk zum Importieren von Daten aus PrestaShop verwendet.

Deaktivieren von CCC #

CCC (Concatenate, Combine und Cache) ist eine eingebaute PrestaShop-Funktion, mit der Sie die Anzahl der Anfragen für Ihr Template reduzieren und diese dann cachen können.

Manchmal kann diese Funktionalität mit unserer Data Sync interferieren und diese blockieren.

Wenn Sie Data-Sync-Fehler haben, öffnen Sie bitte das Backend von PrestaShop und gehen Sie zu:

Advanced Parameters > Performance

Gehen Sie dann zum Abschnitt:

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

Deaktivieren Sie alle Unterfunktionen, speichern Sie, leeren Sie den PrestaShop-Cache und genießen Sie!

P.S: Sie können denselben Grad der Datenkompression—und damit Ladezeitoptimierungen—auch mit einem CDN oder einem dedizierten PrestaShop-Modul erreichen, das dieselbe Kompression und Kombination der Libraries durchsetzt.

Upgrade auf Clerk.js 2 #

Clerk.js 2 ist eine schnellere und flexiblere Version unserer JavaScript-Bibliothek.

Sie erleichtert die Installation von Clerk in jedem Webshop.

Da die beiden Versionen jedoch geringfügig unterschiedlich funktionieren, müssen Sie folgende Schritte befolgen, um erfolgreich zu aktualisieren.

Die beiden Hauptunterschiede in Clerk.js 2 sind, dass die Designs in my.clerk.io die Liquid-Templating-Sprache verwenden, aber sie können auch einfach mit dem Design-Editor erstellt werden.

Designs erstellen #

Da Clerk.js 2 einen anderen Ansatz für Designs verfolgt, müssen Sie neue erstellen.

Sie können Ihre Clerk.js 2-Designs auf zwei Arten erstellen:

Option Design Editor #

  1. Gehen Sie zu my.clerk.io > Recommendations/Search > Designs > New Design.
New design in Clerk
  1. Geben Sie im folgenden Bildschirm Ihrem Design einen Namen (wir empfehlen, “V2” hinzuzufügen, damit es klar ist, dass Sie Clerk.js 2 verwenden).

  2. Wählen Sie den Design-Typ.

  3. Wenn Sie fertig sind, klicken Sie auf Create Design.

Create design button
  1. Im Design Editor klicken Sie auf beliebige vorhandene Elemente wie Name, Bild, Button usw., um sie zu bearbeiten, oder Sie ziehen neue Elemente per Drag & Drop in das Design, um weitere Produktinformationen hinzuzufügen.

  2. Klicken Sie auf Save Design, wenn Sie fertig sind, und gehen Sie zu Schritt 2 der Anleitung.

Design Editor interface
  1. Gehen Sie zu Recommendations/Search > Content und ändern Sie Ihren Clerk Content so, dass Ihr neues Design verwendet wird.

  2. Klicken Sie auf Update Content. Dadurch werden sie vorübergehend nicht in Ihrem Webshop angezeigt, bis Sie mit Schritt 2 fertig sind. Wählen Sie das neue Design für alle Inhalte, die aktualisiert werden sollen.

Update content with new design

Jetzt sind Sie bereit für die Umstellung auf Clerk.js 2.

Modul upgraden #

WARNUNG: Denken Sie daran, Backups aller geänderten Dateien zu machen, da diese überschrieben werden!

Laden Sie zunächst die neueste Version über diesen Link herunter:

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

Download latest PrestaShop module

Melden Sie sich dann in Ihrem PrestaShop-Admin an und gehen Sie zu Modules And Services > Modules And Services.

Modules and Services in PrestaShop

Gehen Sie auf dieser Seite wie folgt vor:

  1. Klicken Sie auf Add New Module.

  2. Klicken Sie auf Choose a file und laden Sie die clerk.zip Datei hoch, die Sie gerade heruntergeladen haben.

  3. Klicken Sie auf Upload this module.

Upload module in PrestaShop

PrestaShop zeigt nun eine Erfolgsmeldung an, die bestätigt, dass Ihr Modul aktualisiert wurde.

Sie haben nun die neueste Version von Clerk für PrestaShop installiert, und Clerk.js 2 läuft auf Ihrem Webshop!

Die vollständige Dokumentation zu Clerk.js 2 finden Sie hier:

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

Umgang mit require.js #

Diese Anleitung gilt nur beim Einsatz von bis zu v.4.4.1 der PrestaShop Clerk-Erweiterung.

In manchen Umgebungen verhindert Require.js, dass Clerk.js geladen wird, was bedeutet, dass keine Slider oder Suchergebnisse angezeigt werden.

In diesem Fall wird folgender Fehler in Ihrer Konsole angezeigt:

Uncaught ReferenceError: Clerk is not defined

Es gibt zwei Möglichkeiten, mit Require.js umzugehen. Beide Ansätze erfordern eine manuelle Änderung im Tracking-Skript in dieser Datei:

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

Einbinden in Require.js #

Am besten versuchen Sie, Require.js dazu zu bringen, Clerk zu erkennen.

Dies erreichen Sie, indem Sie require(['clerk'], function() {}); am Ende des Tracking-Skripts einfügen:

Include clerk in Require.js

Require.js ignorieren #

Falls die obige Lösung nicht funktioniert, können Sie Require.js ignorieren.

Fügen Sie dazu window.__clerk_ignore_requirejs = true; am Anfang des Tracking-Skripts ein:

Ignore Require.js

Nachdem Sie einen dieser Ansätze verwendet haben, ist Require.js nun mit Clerk kompatibel.

Diese Seite wurde von einer hilfreichen KI übersetzt, daher kann es zu Sprachfehlern kommen. Vielen Dank für Ihr Verständnis.