Zum Hauptinhalt springen
Die WWS-Infodatenschnittstelle holt Daten direkt aus dem Warenwirtschaftssystem des Händlers und zeigt sie im Shop an. Zwei Anwendungsfälle stehen im Vordergrund: der angemeldete Käufer sieht seine eigenen Aufträge, und jeder Besucher kann den Lagerbestand zu einem Produkt abfragen. Die Anzeige geschieht in Modul-Templates, die über WS-ExternInclude in ein Master-Template geholt werden. Welche Datei welche Aufgabe übernimmt, legen Sie in der Konfiguration wws-online-interface.config im Abschnitt Templates fest. Die Tags dieser Seite gelten ausschließlich in diesen Modul-Templates. Wegweiser: WWS-Infodatenschnittstelle verwenden · Referenz: Konfiguration wws-online-interface.config
Die Schnittstelle ist für das Warenwirtschaftssystem V4 der D&G entwickelt und nur mit diesem einsetzbar. Sie muss außerdem von der WEBSALE AG freigeschaltet werden.Käuferbezogene Abfragen setzen voraus, dass der Käufer angemeldet ist und eine Kundennummer besitzt, und dass diese Kundennummer im Shop nicht editierbar ist. Andernfalls könnte jeder die Aufträge fremder Kunden einsehen.

Die sechs Templates

Die Spalte “Templates” in den Tabellen dieser Seite nennt jeweils, in welchen dieser Templates ein Tag ausgewertet wird. “alle” bedeutet, dass es überall gilt. Klammern Sie den Aufruf der Schnittstelle immer mit WS-OnlineERPLink beziehungsweise WS-OnlineERPStockLevelLink. Die Klammerung greift nur, wenn die Schnittstelle überhaupt verfügbar ist, und hält den Block sonst aus der Seite heraus.
Setzen Sie den Lagerbestands-Aufruf zusätzlich in eine {!ST-Robot}-Klammerung. Ohne sie schickt jeder Suchmaschinen-Crawler bei jedem Produktaufruf eine Anfrage an die Warenwirtschaft.
Referenz: WS-OnlineERPLink · WS-OnlineERPStockLevelLink · WS-ExternInclude()

Die Feldnamen aus der Konfiguration

Welche Datenfelder die Warenwirtschaft liefert, ist von Shop zu Shop verschieden. Deshalb tragen die Felder keine sprechenden Tagnamen, sondern Nummern: H1 bis H1000 für die Kopfdaten eines Auftrags und P1 bis P1000 für die Positionsdaten. Welche Nummer wofür steht, legen Sie in wws-online-interface.config in den Abschnitten HeadData und PositionData fest. Damit schreiben Sie die Spaltenüberschriften einer Tabelle nicht ins Template, sondern holen sie aus der Konfiguration. Ändert die Warenwirtschaft später die Bedeutung eines Feldes, genügt eine Änderung in der Konfiguration.
Zwei Nummern liegen fest: H1 ist immer die Kundennummer, P1 immer die Menge. Alle anderen Nummern sind frei belegbar und müssen mit der Warenwirtschaft abgestimmt werden.

Die Auftragsliste

ERP-HeadData ist zugleich die Anzahl der gefundenen Aufträge, die Prüfung auf Treffer und die Schleife darüber.
Der Auftragstyp kommt als Zahl aus der Warenwirtschaft. Den lesbaren Text dazu legen Sie in wws-online-interface.config im Abschnitt Types fest. Fehlt dort ein Eintrag, bleibt ERP-HeadData_Type_Txt leer. Die Klammerung im Beispiel fängt das ab und zeigt dann wenigstens die Zahl. ERP-HeadData_Download und ERP-LinkDownload sind zwei Namen für dasselbe Tag. Verwenden Sie in einem Template durchgängig einen davon.
Als Einzel-Tag außerhalb der Schleife gibt ERP-HeadData die Trefferzahl aus, innerhalb der Schleife bezieht sich alles auf den gerade durchlaufenen Auftrag. Die Trefferzahl gehört deshalb vor die Schleife, nicht hinein.

Die Positionen eines Auftrags

Die Positionsschleife läuft innerhalb der Auftragsschleife und bezieht sich immer auf den aktuellen Auftrag. Dieselbe Schachtelung funktioniert im Listen- und im Detail-Template, Sie können den Block also aus einem ins andere übernehmen.

Filter und Zeitraum

Die Übersichtsliste lässt sich über die Anzahl der Einträge, einen Zeitraum und einen alternativen Zeitraum einschränken. Alle dafür nötigen Auswahllisten bringt die Schnittstelle fertig mit.
ERP-MaxEntries_select, ERP-AlternativeDate_select und ERP-Search_Type_select greifen als Klammerung nur, wenn mindestens zwei Einträge konfiguriert sind. Bei nur einer Auswahlmöglichkeit hat eine Liste keinen Sinn, und die Beschriftung daneben verschwindet gleich mit. Die Monatsnamen und die Texte der vorgefertigten Zeiträume stehen in wws-online-interface.config im Abschnitt PeriodSelection. Dort legen Sie mit ShowYearsAgo auch fest, wie weit die Jahresliste zurückreicht.
Steht nur ein einziges Jahr zur Auswahl, geben ERP-DateFrom_year_select und ERP-DateUntil_year_select statt einer Liste ein verstecktes Feld aus. Das Formular funktioniert dadurch weiter, im Layout fehlt an dieser Stelle aber ein sichtbares Element.Die Auswahllisten bringen ihren Feldnamen selbst mit. Setzen Sie kein eigenes select-Element und keinen eigenen name darum herum.

Die Suche

ERP-Search_value gibt den Suchbegriff unverändert aus, so wie der Besucher ihn eingetippt hat. Im value-Attribut eines Eingabefeldes gehört deshalb zwingend das Präfix ENCHTML- davor. Ohne dieses Präfix lässt sich über das Suchfeld fremder HTML-Code in die Seite bringen.
ERP-Search_Type greift als Klammerung ohne Parameter genau dann, wenn überhaupt nach einem Typ gefiltert wird. Der Wert 0 bedeutet “kein Filter”. Der Vergleich in ERP-Search_Type(Wert) läuft über Zahlen. Ein nicht numerischer Parameter wird zu 0 und trifft damit den ungefilterten Zustand.

Noch nicht übernommene Aufträge

Zwischen der Bestellung im Shop und der Übernahme in die Warenwirtschaft vergeht Zeit. In dieser Lücke kennt die Warenwirtschaft den Auftrag noch nicht, der Shop dagegen schon. Das eigene Template PendingEntries schließt diese Lücke.
ERP-LastShopOrderNumber ist die Grenze zwischen beiden Welten: Alles bis zu dieser Bestellnummer steht in der Auftragsliste, alles darüber in dieser Liste. Der Hinweis darauf erspart Rückfragen von Käufern, die ihre jüngste Bestellung in der Übersicht vermissen.

Der Lagerbestand

ERP-RequestSent trennt zwei Zustände, die im Template sonst gleich aussehen: Es wurde noch gar nicht angefragt, weil der Besucher erst eine Filiale wählen muss, oder es wurde angefragt und die Antwort lautet null. Ohne diese Klammerung meldet die Seite im ersten Fall fälschlich, das Produkt sei nicht vorrätig.
Der Lagerbestand ist die einzige Abfrage, die ohne angemeldeten Käufer funktioniert. Genau deshalb braucht sie die {!ST-Robot}-Klammerung um den Modulaufruf. Ohne sie erzeugt jeder Crawler-Durchlauf so viele Anfragen an die Warenwirtschaft, wie der Shop Produkte hat.

Allgemeine Anfragen

Neben Aufträgen und Lagerbestand kann die Schnittstelle beliebige weitere Datensätze liefern. Das Template CommonRequest zeigt sie an.
Ein allgemeiner Datensatz hat einen Namen und beliebig viele Werte. Deshalb liegen hier zwei Schleifen ineinander: die äußere über die Datensätze, die innere über deren Werte. ERP-CommonName() erwartet den technischen Namen als festen Parameter. Die Überschrift je Datensatz bauen Sie deshalb über eine Klammerung mit ERP-CommonData_Name(…) auf, wie im Beispiel. Wer die Namen nicht kennt, gibt stattdessen schlicht ~ERP-CommonData_Name~ aus. ERP-CommonName() verträgt einen zweiten Parameter. {ERP-CommonName(bestand,verfuegbar)} greift dann nur, wenn die konfigurierte Beschreibung zu bestand gleich verfuegbar ist.
Ist der übergebene technische Name gar nicht konfiguriert, gibt ERP-CommonName() eine leere Zeichenkette aus, statt sich bemerkbar zu machen. Eine fehlende Überschrift ist also ein Hinweis auf einen Tippfehler im Namen.
ERP-Type_Selected(Wert) vergleicht numerisch. Der Parameter muss eine Zahl sein, kein Text.

Fehler und Meldungen

ERP-InternalErrorMessage gehört ausschließlich in einen HTML-Kommentar. Der Text ist für die Fehlersuche gedacht und darf einem Käufer nicht im Klartext erscheinen. Sie lesen ihn über die Quelltextanzeige des Browsers.
ERP-UserDependentRequest unterscheidet die käuferbezogenen Abfragen von der Lagerbestandsabfrage. Im gemeinsamen Fehler-Template können Sie damit dem angemeldeten Käufer einen anderen Text zeigen als dem anonymen Besucher.
Die Meldung der Warenwirtschaft ist Fremdtext aus einem System, auf dessen Wortlaut Sie keinen Einfluss haben. Prüfen Sie, ob Sie sie dem Käufer wirklich zeigen möchten, oder ob ein eigener Satz die bessere Auskunft ist.

Die Spalte Typ

Die Spalte “Typ” in den Tabellen dieser Seite hat vier Stellen. Jede Stelle steht für eine Verwendungsart, 1 bedeutet zulässig, 0 nicht zulässig. Ein Tag mit 1111 ist also in allen vier Formen verwendbar, ein Tag mit 0110 nur als positive und negative Klammerung.

Verwandte Themen