Zum Hauptinhalt springen
Ein Produktkonfigurator, ein Blätterkatalog, die Artikel aus einem Redaktionssystem: Solche Inhalte liegen außerhalb des Shops, sollen aber aussehen, als gehörten sie dazu. Der übliche Weg über einen Link führt aus dem Shop heraus, Frames und Popups bringen eigene Nachteile mit. WEBSALE V8s bietet dafür zwei Verfahren, und die Wahl zwischen ihnen entscheidet mehr als nur den Aufwand. Für Inhalte, die sich selten ändern, ist der zweite Weg der bessere. Für alles, was im Moment des Aufrufs berechnet werden muss, bleibt nur der erste.

Externe Includes

Die beiden Tags

Zwei Tags binden die Ausgabe eines fremden Programms an der Stelle ein, an der sie stehen. Der Unterschied liegt darin, was der Shop dabei mitschickt. Bei WS-ExternInclude() werden alle vorhandenen GET- und POST-Parameter zusammengefasst und in den Parametern getbuf und postbuf übergeben. Formulardaten aus einem Formular im Shop gehen zusätzlich per POST an das fremde Programm. Die Ausgabe des fremden Programms darf ihrerseits WEBSALE-Tags enthalten. Damit lassen sich Shopdaten innerhalb fremder Inhalte anzeigen.

Die Adresse angeben

In das Argument gehört die Adresse des fremden Programms. Beide Tags erlauben Tag-in-Tag, der Wert eines anderen Tags kann also Teil der Adresse sein. Dabei werden die Tilde-Zeichen des inneren Tags durch Dollar-Zeichen ersetzt.
Im zweiten Fall übergibt der Shop dieselben beiden Parameter zusätzlich URL-codiert im Parameter getbuf:
Die Verbindung zum fremden System baut der Shop serverseitig auf, über einen Proxy. Der Browser des Besuchers sieht davon nichts und ruft die fremde Adresse nicht selbst auf. Referenz: WS-ExternInclude() · WS-URLInclude()

Prüfen, ob das fremde System antwortet

Fällt das fremde System aus, steht an seiner Stelle im Shop nichts, und der Seitenaufbau verzögert sich bis zum Zeitablauf. Der LiveCheck prüft vorher, ob das System erreichbar ist, und lässt Sie darauf reagieren, etwa mit einem Ersatzinhalt.

Einrichten

Die Prüfungen stehen im Abschnitt <ExternSystemLiveChecks> der shop.config, je Prüfung ein <+Entry>. Bis zu zehn Prüfungen sind möglich.
Referenz: Abschnitt ExternSystemLiveChecks

Die Prüfdatei auf dem fremden Server

Bei einer Prüfung vom Typ 1 gilt die Antwort OK als Erfolg. Jede andere Antwort und jede ausbleibende Antwort gilt als Fehlschlag.
Für eine aussagekräftigere Prüfung setzen Sie an dieser Stelle eigene Prüfungen ein, etwa auf die Erreichbarkeit einer Datenbank.

Im Template abfragen

Was dabei zu beachten ist

Die Zeitspanne in Timeout ist eine Abwägung. Zu kurz, und die Prüfung schlägt fehl, obwohl das System läuft. Zu lang, und jeder Ausfall des fremden Systems lähmt den Seitenaufbau für alle Besucher.
Um die Wirkung eines Ausfalls klein zu halten, klammern Sie den Bereich mit dem externen Include in eine AJAX-Sektion. Der Inhalt wird dann erst geholt, wenn der Besucher ihn anfordert, und nicht bei jedem Seitenaufruf. Referenz: WS-ExternSystemLiveCheck() Wegweiser: Funktionsweise von WEBSALE AJAX-Integrationen · Interne WEBSALE Suche bei Verwendung externer Suchdienstleister deaktivieren

Adressdaten an ein fremdes System übergeben

Braucht das fremde System die Rechnungs- oder Lieferadresse, übergeben spezielle Tags sie in der Adresse des Aufrufs. Wie die Daten dabei geschützt werden, entscheidet ein Parameter.

Codierung festlegen

Das Passwort muss genau 16 Zeichen lang sein. Bei jeder anderen Länge greift die Verschlüsselung nicht, und die Daten gehen lediglich hexcodiert hinaus.

Die Tags

Welche Parameternamen zu verwenden sind, bestimmt das empfangende System.

Das Datenformat

Die Daten entstehen im XML-Format, die Feldnummer bildet dabei den Elementnamen:
Übergeben wird nur, was in der shop.config für die jeweilige Adresse auch konfiguriert ist. Ein Feld, das der Shop nicht erhebt, taucht in der Übergabe nicht auf. Die Felder für Rechnungs- und Lieferadresse überschneiden sich weitgehend:
Das Postfach trägt in der Rechnungsadresse die Nummer 21 und in der Lieferadresse die Nummer 20. Wer die Felder im empfangenden System nach Nummern auswertet, muss beide Fälle unterscheiden.
Für die kundenspezifischen Daten gibt es zwei Felder:

Ein Redaktionssystem anbinden

Dieses Kapitel wird überarbeitet. Bei Fragen wenden Sie sich bitte an Ihren WEBSALE Ansprechpartner. Für Inhalte aus einem Redaktionssystem gibt es die beiden eingangs genannten Wege. Die Entscheidung fällt an der Frage, ob die Inhalte aktive Funktionen mitbringen.
Von der Einbindung über ExternInclude raten wir ab. Die Anzeige hängt dann dauerhaft an der Erreichbarkeit des fremden Systems, und die Ladezeiten entsprechen nicht mehr dem Stand der Technik.
Jedes Redaktionssystem, das im JSON-Format exportieren kann, lässt sich anbinden.

Wie es arbeitet

Das Redaktionssystem legt zwei Arten von Dateien auf dem FTP-Bereich des Shops ab: je Inhaltsseite eine JSON-Datei und dazu eine Mapping-Datei, die jeder Adresse ihre Datei zuordnet. Die Adressen der Inhaltsseiten enthalten ein gemeinsames Verzeichnis, beispielsweise /cms/. Dieses Verzeichnis ist der Auslöser: Eine Serverregel erkennt Adressen, die damit beginnen, und leitet sie im Hintergrund auf ein Shop-Template um. Dabei wird die ursprünglich aufgerufene Adresse als One-Time-Parameter übergeben, und genau daran erkennt das Template, welche JSON-Datei es laden muss.
Die sichtbare Adresse im Browser ändert sich dabei nicht.

Schritt 1: Freischaltung und FTP-Zugang

Lassen Sie die JSON-Schnittstelle freischalten. Sie bekommen dafür einen eigenen FTP-Zugang für die Dateien aus dem Redaktionssystem. Auch die Adressregel muss von der WEBSALE-Systemadministration eingerichtet werden. Drei Festlegungen gehören zu dieser Einrichtung. WEBSALE setzt dafür Standardwerte, abweichende Wünsche teilen Sie bei der Einrichtung mit: Verwenden Sie OTP1 bereits für etwas anderes, nennen Sie bei der Einrichtung einen anderen Parameter. Sonst überschreiben sich die beiden Verwendungen gegenseitig.

Schritt 2: Inhalte exportieren

Je Inhaltsseite entsteht eine JSON-Datei, die in das FTP-Verzeichnis der Schnittstelle hochgeladen wird.

Schritt 3: Mapping-Datei exportieren

Die Mapping-Datei verbindet Adresse und Datei.

Schritt 4: Das Template anlegen

Ein einziges Template genügt für alle Inhaltsseiten, weil der One-Time-Parameter und die Mapping-Datei die Steuerung übernehmen. Zuerst wird die Mapping-Datei geladen und darin die aufgerufene Adresse gesucht:
Die Schleife läuft über alle Einträge der Mapping-Datei, vergleicht die Adresse mit dem One-Time-Parameter und legt bei einem Treffer den Dateinamen im freien Platzhalter DC-FPjsonData ab. Danach wird diese Datei geladen und ausgelesen. Das folgende Beispiel setzt die Angaben für den Kopfbereich der Seite:
Daraus entsteht:
Die Klammerung {DC-FPjsonData} prüft, ob überhaupt eine Datei gefunden wurde. Ohne sie versucht das Template, eine Datei ohne Namen zu laden. Referenz: EJD-Tags für die JSON-Schnittstelle Wegweiser: JSON-Schnittstelle

Verwandte Themen