Prestashop

FAQ

Verwendung von Formatierern in Entwürfen #

Mit Clerk.js können Sie eigene Javascript-Funktionen schreiben, die den Designs neue Funktionen hinzufügen.

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

  • Über my.clerk.io > Einstellungen > Formatters, wobei jeder Formatter als separater Eintrag erstellt werden kann.
  • Als Konfiguration für Clerk.js, in dem Tracking-Skript, das auf allen Seiten eingefügt wird, wo mehrere Formatierer auf einmal hinzugefügt werden können.

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

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

Ein Beispiel ist unten zu sehen. Bitte beachten Sie, dass dies die 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 -->

Sie können eine beliebige Anzahl von Formatierern angeben, getrennt durch ein 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;
   }
}

Nachdem Sie Ihre Formatierer erstellt haben, können Sie sie mit dieser Syntax in Ihren Designs verwenden:

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

Auf diese Weise können Sie jede beliebige Funktionalität in Ihren Designs erstellen, die Sie benötigen.

Synchronisierung mit HTTP-Authentifizierung #

Häufig wird die HTTP-Authentifizierung auf Staging-Sites verwendet, um ungebetene Besucher zu vermeiden.

Dadurch wird der Clerk-Importer ebenfalls blockiert und im Synchronisierungsprotokoll wird ein Fehler 401 Unauthorized angezeigt.

Sie können den Importer leicht überprüfen, indem Sie die Authentifizierungsinformationen in die Import-URL einfügen, wie unten, in Data Sync unter my.clerk.io:

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

Häufige Synchronisationsfehler #

Hinweis: Wir empfehlen Ihnen, das Plugin immer auf die neueste Version zu aktualisieren, um alle aktuellen Funktionen von Clerk zu nutzen.

Beim Importieren von Daten mit dem PrestaShop-Plugin von Clerk.io ist der Webshop-Server dafür verantwortlich, die Produkt-, Kategorie- und Verkaufsdaten an Clerk.io. zu senden.

In einigen Fällen kann es jedoch vorkommen, dass die Serverkonfiguration den Zugriff auf den Import verhindert, was zu einem Fehler in Data Sync. führt.

Nachfolgend finden Sie eine Liste der häufigsten Fehler und wie Sie diese beheben können.

401 Server-Fehler: Nicht autorisiert #

Dieser Fehler tritt auf, wenn Ihr Webshop/Ihre Entwicklungsumgebung eine HTTP-Authentifizierung für den Zugriff erfordert.

Dies wird einfach durch Einfügen von Benutzername und Passwort als Teil der Import-URL gelöst:

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

403 Server-Fehler: Forbidden #

Dieser Fehler tritt auf, wenn Ihr Server den Zugriff des Importeurs blockiert. In den meisten Fällen müssen Sie einfach die IP-Adresse des Importeurs auf eine Whitelist setzen, um ihm den Zugriff zu ermöglichen.

Die aktuelle IP-Adresse finden Sie hier.

Überprüfen Sie auch, ob Ihr öffentlicher Schlüssel, Ihr privater Schlüssel und Ihre Import-URL für den Shop, den Sie auf my.clerk.io betreiben, korrekt sind.

In einigen Fällen wird dieser Fehler auch angezeigt, wenn Sie andere Sprachdomänen verwenden, wie http://webshop.com/it. Stellen Sie in diesem Fall sicher, dass Sie die vollständige Domain angeben, die Sie synchronisieren möchten:

Was ist, wenn ich bereits eine Whitelist erstellt habe, aber derselbe Fehler immer noch auftritt?

Es gibt einige Fälle, in denen Sie die IP-Adresse des Importeurs auf die Whitelist gesetzt haben, der Fehler aber immer noch auftritt:

  • Der Authentifizierungsteil des Body kann aus der Anfrage vom Server des Shops entfernt werden.

  • Ratenbegrenzung für den Server in Bezug auf Cloudflares.

  • Prüfen Sie, ob die Url des Importeurs https enthält.

404 Server-Fehler: Nicht gefunden #

Dieser Fehler tritt auf, wenn der Importeur nicht auf den Link zugreifen konnte, der uns Daten aus dem Webshop sendet. In den meisten Fällen geschieht dies, weil die Erweiterung entweder:

  • gar nicht installiert ist

  • Ein Cache führt dazu, dass der Link nicht initialisiert werden kann

Stellen Sie zunächst sicher, dass Sie das Modul korrekt installiert haben.

Zweitens sollten Sie den Cache Ihres Webshops leeren, bevor Sie einen neuen Import versuchen.

429 Server-Fehler: Zu viele Requests #

Dieser Fehler tritt auf, wenn Ihr Server dem Importeur den Zugriff verweigert, weil zu viele Anfragen eingehen.

Sie können dies beheben, indem Sie das Request-Limit für Ihren Server höher setzen oder die Seitengröße im Clerk.io-Importer auf einen höheren Wert einstellen, so dass der Importer weniger und größere Anfragen stellt:

Wenn Sie den Host-Provider Byte.nl verwenden, gibt der Importer diesen Fehler in der Regel aufgrund seiner Ratenbegrenzer zurück. Wenden Sie sich in diesem Fall einfach an Byte.nl und bitten Sie darum, den User-Agent des Importers " **clerk" auf die Whitelist zu setzen.

500 Interner Serverfehler #

Dieser Fehler bedeutet, dass Ihr Server auf einen internen Fehler gestoßen ist und Sie nicht in der Lage waren, den Fehler zu spezifizieren.

In diesen Fällen können Sie Ihr Server Log überprüfen, um festzustellen, welcher Prozess abgestürzt ist und warum. In den meisten Fällen handelt es sich um ein Produkt mit einem ungültigen Attribut oder um eine Funktion, die im Webshop falsch aufgerufen wird.

Wenn Sie die Facebook Pixel App installiert haben, ist diese dafür bekannt, dass sie einen 500-Fehler verursacht. 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 stattdessen das Facebook Pixel manuell in Ihre Hauptthemen-Datei.

Sie können auch versuchen, den Debug-Modus in Prestashop zu aktivieren, der die genaue Fehlermeldung ausgibt, wenn Sie einen 500-Fehler erhalten.

Aktivieren Sie STETS den Debug-Modus über FTP, um zu vermeiden, dass Sie möglicherweise aus Prestashops Admin-Panel ausgesperrt werden. Prüfen Sie, wie man es mit FTP macht.

503 Server-Fehler: Dienst nicht verfügbar #

Dieser Fehler ist in der Regel vorübergehend und wird dadurch verursacht, dass der Server zu beschäftigt ist, um die Anfrage zu bearbeiten. Versuchen Sie es etwas später erneut.

Wenn das Problem weiterhin auftritt, könnte dies bedeuten, dass der Server mit Prozessen überlastet ist und sich nahe der maximalen Kapazität befindet.

Überprüfen Sie die Serverauslastung, um festzustellen, ob dies der Fall ist.

520: Webserver hat einen unbekannten Fehler zurückgegeben #

In der Regel wird dieser Fehler von CloudFlare zurückgegeben und tritt oft aufgrund von Engpässen in Prestashop auf, die Probleme mit höheren Seitengrößen verursachen.

Um das Problem zu beheben, setzen Sie einfach die Seitengröße auf 50 und führen Sie eine neue Synchronisierung durch:

Ungültige Antwort von Prestashop erhalten #

Dieser Fehler wird häufig bei der Verwendung des Facebook-Pixel-Moduls verursacht, das ein Pixel oben in alle Dateien in Prestashop einfügt.

Dies führt oft dazu, dass die Datensynchronisierung fehlschlägt, weil das Pixel die Daten stört, die Clerk.io von Prestashop erhalten soll.

Die Behebung dieses Problems ist recht einfach - Sie müssen lediglich eine kleine Anpassung in pspixel.php vornehmen, der Datei, die das Pixel erzeugt.

Häufig ist dies in einem der folgenden 4 Wege zu finden:

  • /modules/pspixel/pspixel.php
  • /modules/alcapixel/alcapixel.php
  • /modules/facebookpixel/facebookpixel.php
  • /modules/canonicalseo/canonicalseo.php /modules/canonicalseo/canonicalseo.php

In der Datei müssen Sie um Zeile 196, die folgende Code-Zeile innerhalb der public function hookHeader($params) einfügen:

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

            return;

        }

Zur Unterstützung der neueren Datensynchronisation:

      if (Tools::getValue('module') == 'clerk') {

          return;

       }

Am Ende sollte die Datei wie folgt aussehen:

Dadurch wird das Zählpixel speziell aus den Links entfernt, die Clerk.io zum Importieren von Daten aus Prestashop verwendet.

Deaktivieren von CCC #

CCC ( C oncatenate, C ombine und C ache) ist eine eingebaute PrestaShop-Funktionalität, die es Ihnen ermöglicht, die Anzahl der Anfragen Ihres Templates zu reduzieren und diese dann zu cachen.

Manchmal kann diese Funktionalität mit unserem Data Sync Prozess interferieren und ihn blockieren.

Wenn bei Ihnen Data Sync-Fehler auftreten, öffnen Sie bitte Ihr PrestaShop-Backend und besuchen Sie den Abschnitt namens

Erweiterte Parameter –> Leistung

und gehen Sie dann zu dem Abschnitt namens

CCC (Kombinieren, Komprimieren und Cachen)_

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

P.S: Sie können das gleiche Maß an Datenkompression zu erreichen - und so das Laden Seite Leistungen - mit einem CDN oder einem speziellen PrestaShop-Modul, das die gleiche Kompression und Kombination von Bibliotheken erzwingt.

Upgrade auf Clerk.js 2 #

Clerk.js 2 ist eine schnellere und viel flexiblere Version unserer JavaScript-Bibliothek, die die Installation von Clerk.io in jedem Webshop zu einem Kinderspiel macht.

Da die beiden Versionen jedoch leicht unterschiedlich funktionieren, müssen Sie diese Schritte befolgen, um ein erfolgreiches Upgrade durchzuführen.

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

Schritt 1: Konvertieren von Designs #

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

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

1.1 Gehen Sie zunächst auf my.clerk.io -&gt; Empfehlungen / Suche -> Designs und klicken Sie auf Neues Design:

1.2 Auf dem folgenden Bildschirm geben Sie Ihrem Design einen Namen (wir empfehlen, " V2" hinzuzufügen, damit es offensichtlich ist, dass Sie Clerk.js2 verwenden).

1.3. Wählen Sie den Entwurfstyp.

1.4. Wenn Sie fertig sind, klicken Sie auf Entwurf erstellen.

1.5. Klicken Sie im Design-Editor auf eines der vorhandenen Elemente wie den Namen, das Bild, die Schaltfläche usw., um es zu bearbeiten, oder ziehen Sie neue Elemente per Drag-and-Drop in das Design, um weitere Informationen über Produkte hinzuzufügen.

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

1.7. Zum Schluss gehen Sie zu Empfehlungen / Suche -> Inhalt und ändern Sie Ihren Clerk.io Inhalt, um Ihr neues Design zu verwenden.

1.8. Klicken Sie auf Inhalt aktualisieren. Dadurch werden sie vorübergehend nicht in Ihrem Webshop angezeigt, bis Sie die Änderungen abgeschlossen haben.

Schritt 2. Wählen Sie das neue Design für alle Inhalte, die aktualisiert werden sollen.

1.9. So! Sie sind nun bereit, auf Clerk.js 2 umzusteigen.

Schritt 2: Upgrade Ihres Moduls #

**ACHTUNG: Denken Sie daran, von allen geänderten Dateien Sicherungskopien zu erstellen, da sie überschrieben werden.

Laden Sie zunächst die neueste Version von diesem Link herunter:

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

Loggen Sie sich dann in Ihren Prestashop Admin ein und gehen Sie zu Module und Dienste -> Module und Dienste

Gehen Sie auf dieser Seite wie folgt vor:

2.1. Klicken Sie auf Neues Modul hinzufügen.

2.2. Klicken Sie auf Datei auswählen und laden Sie die gerade heruntergeladene Datei clerk.zip hoch

2.3. Klicken Sie auf Dieses Modul hochladen.

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

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

Die vollständige Dokumentation für Clerk.js 2 finden Sie hier:

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

Handhabung von require.js #

**Diese Anleitung gilt nur, wenn Sie bis zu v.4.4.1 der Prestashop Clerk Erweiterung verwenden.

In einigen Konfigurationen verhindert Require.js das Laden von Clerk.js, was bedeutet, dass keine Schieberegler oder Suchergebnisse angezeigt werden.

Wenn dies geschieht, wird der folgende Fehler in Ihrer Konsole angezeigt:

Uncaught ReferenceError: Clerk is not defined

Es gibt zwei Möglichkeiten, Require.js. zu handhaben. Bei beiden Ansätzen müssen Sie Änderungen am Tracking-Skript in dieser Datei vornehmen:

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

Einbindung von “clerk” in Require.js #

Der beste Ansatz ist der Versuch, Require.js dazu zu bringen, Clerk.io. zu erkennen.

Sie können dies tun, indem Sie require([‘clerk’], function() {}); unten in das Tracking-Skript einfügen:

Require.js ignorieren #

Wenn die obige Lösung nicht funktioniert, ist es möglich, Require.js zu ignorieren.

Sie können dies tun, indem Sie window.__clerk_ignore_requirejs = true; einfügen.

oben in das Tracking-Skript einfügen:

Nach Anwendung einer dieser Methoden ist Require.js nun mit Clerk.io kompatibel.