Sie können an jeden WEBSALE V8s-Shop externe Programme wie z. B. Produktkonfiguratoren, externe Anmeldesysteme, Blätterkataloge etc. anbinden.
Meist werden solche externen Systeme per Link aufgerufen, d. h. damit wird der Shop verlassen. Um weiterhin in der Shopumgebung zu bleiben, können externe Programme aber auch per Frames, iFrames oder Popups aufgerufen werden, was jedoch andere spezifische Nachteile mit sich bringt. Hier bieten Externe Includes eine vorteilhafte Alternative, denn es wird weder der Shop verlassen noch sind zusätzliche Frames oder Popups erforderlich.
Mit dem LiveCheck prüfen Sie, ob der Dienst gerade verfügbar ist oder nicht, falls das externe System dies unterstützt. Dies ermöglicht Ihnen, ein externes System nur dann in Ihrem Shop einzubinden, wenn es im Moment verfügbar ist. So können Sie z. B. eine Fallback-Lösung integrieren oder eine entsprechende Fehlermeldung anzeigen.
Inhalt
Die Ausgaben der externen Programme (oder auch extern liegenden HTML-Inhalte) werden direkt und nahtlos in ein Shop-Template integriert. Analog zum Tag WS-IncludeTpl(Dateiname), bei dem der Inhalt eines lokalen Templates in ein vorhandenes Template integriert wird, können Sie mit dem Tag WS-ExternInclude(URL) bzw. WS-URLInclude(URL) die Ausgaben von externen Programmen in ein Template integrieren.
Welches Tag soll ich verwenden?
Wenn Sie von einem externen System Formulardaten benötigen, die mit POST oder GET vom Shop aufgenommen werden sollen, verwenden Sie das Tag WS-ExternInclude().
Wenn Sie lediglich die übergebene URL einbinden möchten, jedoch kein Parameterumschreiben, gesicherte Parameterübergabe und keine Formulardaten benötigen, verwenden Sie das Tag WS-URLInclude().
Wie verwende ich die Tags?
Im Argument dieser Tags geben Sie die URL des externen Programms an. Diese Tags unterstützt Tag-in-Tag-Verwendung, d. h. Sie können im Argument auch WEBSALE V8s-Tags angeben. Ersetzen Sie in diesem Fall die normalen Tag-Kennungen (Tilde-Zeichen) durch Dollar-Zeichen.
Die externen URLs arbeiten entsprechend auf einem Proxy-Server. Im Hintergrund wird eine Socket-Verbindung auf Port 80 (HTTP) zur angegebenen URL aufgebaut.
Bei WS-ExternInclude() werden zusätzlich alle eventuell vorhandenen Formular-Parameter, die per <form action=..."> ...</form> im Shop aufgenommen wurden, dem externen Programm per Post-Methode übergeben. Alle eventuell vorhandenen GET- und POST-Parameter werden "zusammengehängt" und mittels der Parameter getbuf und postbuf übergeben.
Bei beiden Tags werden die Ausgaben des externen Programms dann direkt in das Shop-Template integriert. Diese Ausgaben können selbst wiederum WEBSALE V8s-Tags beinhalten. Somit lassen sich beliebige Shop-Daten innerhalb von Shop-fremden Inhalten anzeigen.
Was tun, wenn das externe System nicht erreichbar ist?
Mittels LiveCheck wird geprüft, ob das externe System erreichbar ist. Hierfür müssen Sie zuerst die Einstellungen in der Shopkonfiguration shop.config festlegen und eine eindeutige ID für diese Prüfung vergeben.
Die Prüfung des externen Systems wird durchgeführt, sobald im Template ein Bereichs-Tag oder negatives Bereich-Tag mit dieser ID als Argument erreicht wird. Dabei wird für eine ID pro Seitenaufruf maximal eine Anfrage an das externe System gestellt, auch wenn diese mehrfach auf dem Template verwendet wird. Abhängig von der Konfiguration kann das Ergebnis einer Anfrage auch für die aktuelle Sitzung gespeichert werden. In diesem Fall wird für diese ID in der aktuellen Sitzung keine weitere Anfrage an das externe System gestellt sondern das gespeicherte Ergebnis der Prüfung verwendet.
Für jede einzelne Prüfung können Sie eine Zeitspanne angeben, in der das externe System antworten muss. Antwortet das externe System nicht vollständig innerhalb dieser Zeitspanne, so wird die Prüfung als fehlgeschlagen gewertet. Es sind unterschiedliche Prüfungen für externe Systeme verfügbar.
Sollte die von Ihnen gewünschte Prüfung nicht verfügbar sein, kontaktieren Sie bitte Ihren WEBSALE-Ansprechpartner.
Wenn Sie z. B. externe Suchdienstleister über Extern Includes einbinden, können Sie die interne WEBSALE-Suche als Fallback reaktivieren:
Wegweiser: Interne WEBSALE Suche bei Verwendung externer Suchdienstleister deaktivieren
Regeln für LiveChecks
▪Wenn Sie auf einem Template den LiveCheck für eine bestimmte ID mehrfach durchführen, wird nur bei dem ersten Tag eine Anfrage an das externe System gestellt. Bei jeder weiteren Verwendung wird das Ergebnis der ersten Anfrage verwendet.
▪Je nach Konfiguration kann das Ergebnis einer Anfrage (für eine bestimmte ID) an ein externes System für die aktuelle Sitzung gespeichert werden (CheckMode = failPersistant oder successPersistant). Ist dies der Fall, wird für jeden weiteren LiveCheck für diese ID das gespeicherte Ergebnis verwendet und keine weitere Anfrage an das externe System gestellt.
▪Bei jeder Anfrage an ein externes System muss ein Verbindungsaufbau zwischen WEBSALE V8s und diesem System durchgeführt werden. Diese Kommunikation benötigt im Schnitt 300 Millisekunden und verlängert dementsprechend die Antwortzeit des Seitenaufrufs.
▪Jedes Tag WS-ExternSystemLiveCheck() mit einer ID als Argument, für die keine oder eine ungültige Prüfung konfiguriert ist, wird nicht ersetzt.
▪Wenn das externe System nicht erreichbar ist, kann der Seitenaufruf verzögert werden. Die maximale Zeitspanne, innerhalb der das externe System antworten muss, kann für jede Prüfung einzeln festgelegt werden (Timeout).
▪Ist die Zeitspanne zu kurz gewählt, kann es sein, dass die Prüfung fehlschlägt, obwohl das externe System verfügbar ist, da das externe System nicht rechtzeitig antworten kann.
▪Ist die Zeitspanne zu lang gewählt, kann es sein, dass der Seitenaufbau sehr oder zu stark verzögert wird, wenn das externe System nicht antwortet.
Hinweis: |
|
Um die Auswirkung nicht verfügbarer externer System zu reduzieren empfehlen wir den Bereich mit einer WS-Ajax-Sektion zu klammern. Erst wenn der User einen Link klickt, wird der Bereich mit dem ExternInclude aufgerufen und angezeigt. |
Schritt 1: Freischaltung/Aktivierung
Es ist keine Freischaltung oder Aktivierung seitens WEBSALE nötig.
Schritt 2: Integration des LiveChecks in der Shopkonfiguration shop.config
Die Einstellungen für eine Prüfung eines externen Systems nehmen Sie in der Shopkonfiguration shop.config, Abschnitt ExternSystemLiveChecks in einem Unterabschnitt <+Entry> vor. Sie können bis zu 10 Prüfungen festlegen.
<ExternSystemLiveChecks>
...
<+Entry>
ID = cms-available
URL = https://www.your-domain.com/system-livecheck/index.php
Type = 1
CheckMode = successPersistant
Timeout = 1000
</+Entry>
...
</ExternSystemLiveChecks>
Referenz: Abschnitt ExternSystemLiveChecks
Hinweis: |
|
Wenn die Prüfung für das externe System, welches Sie einsetzen, nicht verfügbar ist, kontaktieren Sie bitte Ihren WEBSALE Ansprechpartner. |
Schritt 3: Erstellen der Prüfdatei auf dem externen Server
Bei einem LiveCheck vom Typ 1 stellt WEBSALE eine "HTTP-Get"-Anfrage an die in der Parameter-URL angegebenen Adresse.
Beispiel-Inhalt für eine einfache Prüfung:
<?
echo "OK";
?>
Beispiel-Inhalt für eine erweiterte Prüfung:
Liefert das externe System als HTTP-Antwort OK zurück, war die Prüfung erfolgreich. Bei keiner bzw. allen anderen Antworten war die Prüfung nicht erfolgreich.
<?
// Hier können Sie individuelle(n) Prüfung(en) implementieren.
// Während der Prüfungen dürfen keine Ausgaben erfolgen
// Speichern Sie das Ergebnis in der Variable result:
// true für LiveCheck erfolgreich
// false für LiveCheck nicht erfolgreich
if ($result == true)
echo "OK";
else
echo "Not OK";
?>
Schritt 4: Externes Include auf dem WEBSALE-Template einfügen
Ergänzen Sie WS-URLInclude() oder WS-ExternInclude() mit dem entsprechenden Argument auf dem gewünschten Template.
Als Beispiel wird hier der aktuelle Produktname sowie der Parameter "param" mit festem Wert an das externe System "konfigurator.php" übergeben.
Bei Verwendung von WS-ExternInclude() übergibt der Shop zusätzlich die beiden Parameter "produktname" und "param" durch den Parameter "getbuf" URL-codiert: getbuf=produktname%3dName%26param%3dWert
~WS-URLInclude(https://.../konfigurator.php?produktname=$PR-Name$¶m=Wert)~
oder
~WS-ExternInclude(https://.../konfigurator.php?produktname=$PR-Name$¶m=Wert)~
Referenz: WS-URLInclude()
Referenz: WS-ExternInclude()
Schritt 5: Prüf-Klammerung ergänzen
Ergänzen Sie die folgende Klammerung, um zu prüfen, ob das externe System mit der angegebenen ID (und den dazu festgelegten Einstellungen) momentan verfügbar ist oder nicht.
...
{WS-ExternSystemLiveCheck(cms-available)}
~WS-ExternInclude(...)~
{/WS-ExternSystemLiveCheck(cms-available)}
{!WS-ExternSystemLiveCheck(cms-available)}
Alternativer Inhalt, wenn CMS-System nicht erreichbar
{/!WS-ExternSystemLiveCheck(cms-available)}
...
Referenz: WS-ExternSystemLiveCheck()
Haben Sie alle Schritte durchgeführt, ist die Funktion vollständig integriert und kann getestet/eingesetzt werden.
Durch spezielle Tags ist es möglich, die Adressdaten (Rechnungs- und Lieferadresse) an ein externes System zu übergeben. Dabei können die Daten unverändert, hexcodiert oder Blowfish-verschlüsselt / hexcodiert übergeben werden.
Schritt 1: Integration der Codierungs- und Verschlüsselungsregeln in der Shopkonfiguration shop.config
Es wird der Parameter ExternalUserDataExchangePW im Abschnitt <Basic> der Shopkonfiguration shop.config verwendet:
<Basic>
...
ExternalUserDataExchangePW = 123456789012345
...
</Basic>
Dieser Parameter steuert die Codierung und Verschlüsselung der übergebenen Daten.
▪Ist dieser Parameter leer, werden die Daten nur hexcodiert übertragen.
▪Hat dieser Parameter den Wert NOHEX, dann werden die Daten uncodiert übertragen.
▪Ist der Wert dieses Parameters 16-stellig, wird er als Passwort für eine Blowfish-Verschlüsselung der Daten verwendet. (Die Daten werden erst Blowfish-verschlüsselt, danach hexcodiert)
Schritt 2: Übergabe der Adressdaten an das externe System
An die externe URL werden die Parameter &A=<Rechnungsadresse>&D=<Lieferadresse>&U=<kundenspezifische Daten> angehängt. Die Namen der Parameter hängen vom empfangenden externen System ab.
Beispiel 1: Übergabe der Rechnungsadresse und kundenspezifischer Daten mit den Parametern "data" und "user"
~WS-ExternInclude(https://domain.de/externalProg.cgi?data=$EXTDATA-A$&user=$EXTDATA-U$)~
Beispiel 2: Übergabe aller Daten an das externe Programm ohne Parameter
~WS-ExternInclude(https://domain.de/externalProgXYZ.cgi?$EXTDATA-ALL$)~
Folgende Einzel-Tags für Kundendaten werden unterstützt:
EXTDATA-A: Übergibt die Rechnungsadresse mit der konfigurierten Kodierung/Verschlüsselung.
EXTDATA-D: Übergibt die Lieferadresse mit der konfigurierten Kodierung/Verschlüsselung.
EXTDATA-U: Übergibt kundenspezifische Daten mit der konfigurierten Kodierung/Verschlüsselung.
EXTDATA-ALL: Übergibt alle Daten.
Schritt 3: Überprüfen Sie den Ablauf der Übergabe, Datenformat und Datenfelder
Die Daten werden im XML-Format erzeugt, beispielsweise mit folgender Syntax:
<1>Firma</1><3>Vorname</3><4>Nachname</4>.....
Datenfelder der Rechnungsadresse
Es werden nur die Parameter übergeben, welche für die Rechnungsadresse in der Shopkonfiguration shop.config konfiguriert sind!
Parameter |
Wert |
81 |
Kundennummer |
1 |
Firma |
3 |
Vorname |
4 |
Nachname |
5 |
Titelcode (wie in der Konfiguration title.dat angegeben) |
6 |
Straße 1 |
7 |
Straße 2 |
8 |
PLZ |
9 |
Stadt |
10 |
Bundesland/Staat |
11 |
3-stelliger ISO-Code des Landes |
13 |
Telefon |
14 |
Fax |
15 |
E-Mail-Adresse |
78 |
benutzerdefinierte Liste 1 |
79 |
benutzerdefinierte Liste 2 |
89 |
benutzerdefinierte Liste 3 |
2 |
Anredecode (wie in der Konfiguration salutation.dat angegeben) |
16 |
Telefon geschäftlich |
17 |
Telefon mobil |
18 |
Fax geschäftlich |
19 |
Geburtsdatum in der Form DD.MM.YYYY |
21 |
Postfach |
23 |
Suffix 1 |
24 |
Suffix 2 |
25 |
Suffix 3 |
26 |
Suffix 4 |
27 |
Suffix 5 |
28 |
Departement |
29 |
Kostenstelle |
30 |
Suffix 6 |
31 |
Suffix 7 |
32 |
Suffix 8 |
33 |
Suffix 9 |
34 |
Suffix 10 |
36 |
Postfach PLZ |
37 |
USt-IdNr. |
Datenfelder der Lieferadresse
Es werden nur Parameter übergeben, die für die Lieferadresse in der Shopkonfiguration shop.config spezifiziert sind.
Parameter |
Wert |
1 |
Firma |
3 |
Vorname |
4 |
Nachname |
5 |
Titelcode (wie in der Konfiguration title.dat angegeben) |
6 |
Straße 1 |
7 |
Straße 2 |
8 |
PLZ |
9 |
Stadt |
10 |
Bundesland/Staat |
11 |
3-stelliger ISO-Code des Landes |
13 |
Telefon |
16 |
Telefon geschäftlich |
17 |
Telefon mobil |
14 |
Fax |
18 |
Fax geschäftlich |
15 |
E-Mail-Adresse |
2 |
Anredecode (wie in der Konfiguration salutation.dat angegeben) |
19 |
Geburtsdatum in der Form DD.MM.YYYY |
20 |
Postfach |
23 |
Suffix 1 |
24 |
Suffix 2 |
25 |
Suffix 3 |
26 |
Suffix 4 |
27 |
Suffix 5 |
28 |
Departement |
29 |
Kostenstelle |
30 |
Suffix 6 |
31 |
Suffix 7 |
32 |
Suffix 8 |
33 |
Suffix 9 |
34 |
Suffix 10 |
36 |
Postfach PLZ |
Datenfelder der kundenspezifischen Daten
Parameter |
Wert |
0 |
UserIndex (wenn UserIndex 0: User ist nicht angemeldet) |
17 |
SuperUserID (wenn SuperUserID leer ist -> kein SuperUser) |
Haben Sie alle Schritte durchgeführt, ist die Funktion vollständig integriert und kann getestet/eingesetzt werden.