Allgemeine Anforderungen / Leistungen
Es wird ein W2P-System in WEBSALE V8 integriert. Ein User kann mit diesem System seine Druckvorlagen per Web-Zugriff online gestalten. Nach der Gestaltung übergibt das W2P-System eine eindeutige Dokumenten-Nummer (DocID) an den Shop.
Führt der User die Bestellung im Shop aus, dann wird über die DocID die endgültige Druckvorlage (PDF-Datei) vom W2P-System erstellt und per FTP auf den WEBSALE-Server übertragen. Die PDF-Datei wird anschließend vom ERP-System für die Produktion abgeholt. Das W2P-System dient als Alternative zum Upload-System. Ein User kann für ein Produkt entweder das Upload-System oder das W2P-System verwenden. Beides gleichzeitig ist nicht möglich und muss entsprechend abgefangen/synchronisiert werden.
Datei-Upload und Upload-System
Ein Datei-Upload (zu einer aktuellen Bestellung) wird nach einer erfolgreich abgeschlossenen Bestellung angeboten. Als Referenz dient ausschließlich die Bestellnummer. Die Upload-ID wird dem Besteller nicht mehr angezeigt, jedoch weiterhin generiert und an die technischen Systeme (ERP-System, W2P-System, etc.) weitergegeben.
Das Upload-System wird um 2 Funktionen erweitert.
Ein Upload ist nur noch über die Bestellnummer möglich
Ein Upload ist nicht möglich, wenn die Druckvorlage per W2P-System erstellt wurde. Hierzu wird ein entsprechendes Sperr-Flag vom Shop gesetzt, wenn dieser eine DocID vom W2P-System erhalten hat.
Kennzeichnung der W2P-Produkte im Shop
Je Artikel/Set-Oberartikel müssen im ERP-System 2 neue Parameter auf Variantenebene definiert werden.
Parameter „W2P“
„y“: Artikel ist W2P-fähig
„n“ oder leer: Artikel ist nicht W2P-fähig
Auf der Einzelproduktansicht und je Warenkorb-Position wird aufgrund dieses Flags ein Button „W2P-Gestaltung“ angeboten bzw. ausgeblendet.
„W2PCost“
Optionale Gestaltungskosten. Eine W2P-Gestaltung liegt technisch dann vor, wenn der Shop vom W2P-System eine DocID erhalten hat. Nur dann werden die optionalen Gestaltungskosten angezeigt und zur Endsumme addiert. Die Kosten werden unterhalb des Warenkorbes global ausgewiesen und als globale Kosten (analog zu den Lieferkosten oder den klimaneutralen Kosten) an das ERP-System übergeben.
W2P-Aufruf und -Ausführung
Der W2P-Aufruf erfolgt durch einen zusätzlichen Button auf der Produktseite und auf der Warenkorbseite. Ist der Besteller nicht angemeldet, dann wird beim Klick auf den W2P-Button ein Popup mit 2 Optionen angezeigt.
„Anmeldung im Shop“ und Weiterleitung zur Anmeldeseite. Nach der Anmeldung erfolgt unmittelbar die Weiterleitung zum W2P-System.
„Keine Anmeldung“ und direkte Weiterleitung zum W2P-System.
Entsprechende Hinweistexte im Popup sollen dem Besteller die Vorteile einer Anmeldung verdeutlichen.
Aufgrund der Weiterleitung zum W2P-System wird der Shop verlassen. Auf den W2P-Seiten wird daher stets ein „Zurück-Link“ bzw. ein „Abbrechen-Link“ angeboten, der den Besteller auf die Shop-Warenkorbseite zurückführt. Im Warenkorb wird ebenfalls ein W2P-Gestaltungs-Button angeboten, damit der Besteller eine W2P-Gestaltung erneut ausführen oder eine bereits abgeschlossene Gestaltung ändern kann. Eine abgeschlossen Gestaltung kann im Warenkorb zudem gelöscht werden.
Dokumenten-Thumbnail
Bestätigt der User beim W2P-System die W2P-Gestaltung, dann wird der Shop vom W2P-System per Redirect mit einer eindeutigen DocID aufgerufen. Der Shop zeigt hierzu ein Dokumenten-Thumbnail im Warenkorb an, welches vom W2P-System generiert wurde.
Finale Druckvorlage
Nachdem der User eine Bestellung ausgeführt hat, sendet der Shop an das W2P-System mittels DocID den Auftrag. Anschließend wird vom W2P-System die finale Druckvorlage generiert und per FTP auf den Shop-Server übertragen.
Übertragung der W2P-Druckvorlage
Das W2P-System überträgt die Druckvorlage per FTP zum WEBSALE-Server. Zusätzlich wird eine Synchronisationsdatei für das ERP-System benötigt.
Name der Sync-Datei: finished.sync
Inhalt der Sync-Datei: Eine einzige Zeile mit Datum und Uhrzeit (Erstellungsdatum der Sync-Datei) im Format „YYYY/MM/DD HH:MM“
Beispiel: 2012/03/31 10:09
Beide Dateien werden in das Upload-Verzeichnis von Kunde übertragen.
Das Upload-Verzeichnis hat folgenden Aufbau:
FTP-Root
UploadID (Verzeichnis)
finished.sync (Datei)
PositionID (Verzeichnis)
Druckdatei1 (Datei)
Druckdatei2 (Datei)
...
DruckdateiN (Datei)
...
nächste UploadID (Verzeichnis)
finished.sync (Datei)
PositionID (Verzeichnis)
Druckdatei1 (Datei)
Druckdatei2 (Datei)
...
DruckdateiN (Datei)
...
Der Shop übergibt dem W2P-System beim Aufruf zwei Parameter, die UploadID und die PositionID. Unterhalb der FTP-Root existieren gleichnamige Verzeichnisse, die vom Shop bereits angelegt wurden. Die Datei finished.sync muss unterhalb des UplodID-Verzeichnisses kopiert werden. Die Druckdatei wird unterhalb des PositionID-Verzeichnisses kopiert.
Beispiel:
UploadID: AABB11CC
PositionID: 33DD55AA
Druckdatei: abc.pdf
FTP-Root (Verzeichnis)
AABB11CC (Verzeichnis)
finished.sync (Datei)
33DD55AA (Verzeichnis)
abc.pdf (Datei)
Shop-Timeout
Die Shop-SessionID besitzt einen Timeout von 2 Stunden. Damit während einer W2P-Gestaltung der Shop-Timeout nicht erreicht wird, ruft das W2P-System in regelmäßigen Abständen (z.B. alle 30 Minuten) den Shop im Hintergrund auf.
Aufruf des W2P-Systems und Datenübergabe
Es werden folgende Schnittstellen implementiert
Initialisierung (per SOAP/SSL)
Weiterleitung vom Shop zum W2P-System
Weiterleitung vom W2P-System zum Shop
Auftrag Druckvorlage (per SOAP/SSL)
Initialisierung
Klickt ein Besteller auf den Button „Druckvorlage erstellen“, dann ruft der Shop das W2P-System im Hintergrund (Server-to-Server) per SOAP-Request auf. Die XML-Strukturen und die WSDL werden von W2P-Anbieter erstellt und vorgegeben. Folgende Daten übermittelt der Shop an das W2P-System:
Globale Daten
Parameter | Pflicht-Feld | Bemerkung |
---|---|---|
ShopID | ja | Wird von WEBSALE vorgegeben |
SubshopID | ja | |
Language | ja | Sprache des Subshops. 2 Zeichen Code nach ISO 639-1 |
UserIndex | nein | Wird übergeben, falls Besteller angemeldet ist. |
SuccessURL | ja | Link zum Shop, wenn Druckvorlage fertig erstellt wurde. |
CancelURL | ja | Link zum Shop, wenn User die Gestaltung abbricht |
KeepAliveURL | ja | Aufruf des Shops im Hintergrund, um den Session-Timeout zurückzusetzen. |
SuccessURL und CancelURL verlinken beide auf den Warenkorb. Evtl. könnten diese später auch auf 2 unterschiedliche Shop-Seiten verlinken.
Artikeldaten
Parameter | Pflicht-Feld / Werte | Bemerkung |
---|---|---|
ProdIndex | ja | Stammartikelnummer |
DepVarIndex | ja | Technische Variantennummer. Leerzeichen der original ERP-System-Nummer wurden durch Punkte ersetzt |
Number | ja | Variantenabhängige Artikelnummer |
Type | Ja Single | Single: Es handelt sich um ein normales Produkt (kein Set) SetParent: Das Produkt ist ein Set-Oberartikel. SetChild: Das Produkt ist ein Set-Unterartikel. |
Name | ja | Artikelname |
VarName (Multiple) | nein | Varianten-Name, z.B. „Seitenzahl“ |
VarValue (Multiple) | nein | Varianten-Wert, z.B. „4-seitig“ |
Rechnungsadressdaten
Die Daten der Rechnungsadresse werden als Name/Wert-Paare übertragen.
Als Name werden die technischen Bezeichnungen von WEBSALE verwendet. Leere Datenfelder werden nicht übergeben.
Parameter | Pflicht-Feld | Bemerkung |
---|---|---|
Name | ja | Name |
Value | ja | Wert |
Beispiel XML-Struktur
<W2PInit>
<Common>
<ShopID>diedruckerei</ShopID>
<SubshopID>01-aa</SubshopID>
<Language>de</Language>
<UserIndex></UserIndex> (leer, User ist nicht angemeldet)
<SuccessURL>http://www.diedruckerei.de/?websale8=diedruckerei.....</SuccessURL>
<CancelURL>http://www.diedruckerei.de/?websale8=diedruckerei.....</CancelURL>
<KeepAliveURL>http://www.diedruckerei.de/?websale8=diedruckerei.....</KeepAliveURL>
</Common>
<Products>
<Product>
<ProdIndex>PFYDL44</ProdIndex>
<DepVarIndex><PFYDL44><PFYDL44090.04...250></DepVarIndex>
<Number>PFYDL4409004250</Number>
<Type>SetParent</Type>
<Name>Falzflyer, DIN-Lang (Hochformat)</Name>
<Variations>
<Variation>
<Name>Papier</Name>
<Value>90g/m² Bilderdruck</Value>
</Variation>
<Variation>
<Name>Seitenzahl</Name>
<Value>4-seitig</Value>
</Variation>
<Variation>
<Name>Auflage</Name>
<Value>250</Value>
</Variation>
</Variations>
</Product>
<Product>
<ProdIndex>ZPLXXXXDD01</ProdIndex>
<DepVarIndex><ZPLXXXXDD01><ZPLXXXX.DD...01></DepVarIndex>
<Number>ZPLXXXXDD01</Number>
<Type>SetChild</Type>
<Name>Datencheck</Name>
<Variations>
<Variation>
<Name>Datencheck</Name>
<Value>mit Datencheck</Value>
</Variation>
</Variations>
</Product>
<Product>
<ProdIndex>ZPLA300YY12</ProdIndex>
<DepVarIndex><ZPLA300YY12><ZPLA3.00YY...12></DepVarIndex>
<Number>ZPLA300YY12</Number>
<Type>SetChild</Type>
<Name>Produktionszeit</Name>
<Variations>
<Variation>
<Name>Produktionszeit</Name>
<Value>1-2 Werktage</Value>
</Variation>
</Variations>
</Product>
...
...
</Products>
<AddressData>
<Entry>
<Name>FirstName</Name>
<Value>Max</Value>
</Entry>
<Entry>
<Name>LastName</Name>
<Value>Mustermann</Value>
</Entry>
...
</AddressData>
</W2PInit>
Sollte ein Produkt den Type „Single“ haben, dann folgen nach dem ersten Produkt keine weiteren Produkte.
Bei Produkten ohne Varianten fehlt die Sektion „Variations“ und der Parameter „DepVarIndex“.
Der SOAP-Request erfolgt ausschließlich per SSL-Verbindung zum W2P-System.
Das W2P-System antwortet im Erfolgsfall mit einer eindeutigen TicketID.
Antwortet das W2P-System mit einem Fehler bzw. ist das W2P-System nicht erreichbar, dann wird dem Besteller eine entsprechende Meldung angezeigt, dass momentan keine Online-Gestaltung möglich ist.
Weiterleitung vom Shop zum W2P-System
Antwortet das W2P-System bei der Initialisierung mit einer TicketID, so wird der Besteller zum W2P-System weitergeleitet. Die Weiterleitungs-URL wird in der Shop-Konfiguration fest hinterlegt. Zusätzlich wird dem W2P-System die TicketID verschlüsselt übergeben.
Link: <W2P-URL>&w2pdata=<1>TicketID</1><2>DocID</2>
Die DocID ist optional und wird nur auf der Warenkorbseite übergeben, falls der Besteller eine bereits abgeschlossene Gestaltung nachträglich ändern möchte.
Die Daten von „w2pdata“ werden nicht im Klartext, sondern Blowfish-verschlüsselt und anschließend hex-codiert übergeben. Hierzu wird in der Shop-Konfiguration und im W2P-System ein gemeinsamer Key mit 16 Zeichen hinterlegt.
Weiterleitung vom W2P-System zum Shop
Bricht der Besteller die Gestaltung ab, so verlinkt das W2P-System auf die „CancelURL“.
Nach einer fertigen Gestaltung verlinkt das W2P-System auf die SuccessURL und übergibt die DocID und die Thumbnail-URL.
Link: <SuccessURL>&w2pdata=<1>DocID</1><2>Thumbnail-URL</2>
Die Daten von „w2pdata“ werden nicht im Klartext, sondern Blowfish-verschlüsselt und anschließend hex-codiert übergeben.
Auftrag Druckvorlage
Wird die Bestellung vom User ausgeführt, dann erfolgt die finale Erstellung der Druckvorlage vom W2P-System. Hierzu ruft der Shop das W2P-System im Hintergrund (Server-to-Server) per SOAP-Request auf. Die XML-Strukturen und die WSDL werden von W2P-Anbieter erstellt und vorgegeben.
Parameter | Pflicht-Feld | Bemerkung |
---|---|---|
TicketID | ja | Wurde dem Shop vom W2P-System bei der Initialisierung übergeben. |
DocID | ja | |
UserIndex | ja | User ist zu diesem Zeitpunkt stets angemeldet |
UploadID | ja | |
PositionID | ja |
Beispiel XML-Struktur
<W2POrder>
<TicketID>xyz</TicketID>
<DocID>abcdefg123</DocID>
<UserIndex>123456</UserIndex>
<UploadID>AABBCCDD</UploadID>
<PositionID>1234CCDD</PositionID>
</W2POrder>
Der SOAP-Request erfolgt ausschließlich per SSL-Verbindung zum W2P-System.
Antwortet das W2P-System mit einem Fehler oder ist das W2P-System nicht erreichbar dann erfolgt:
eine Fehlerprotokollierung im Shop
eine Benachrichtigung per eMail an den Shop-Admin
Anmerkung
Die DocID wird auch in den Bestelldaten gespeichert. Evtl. Könnte W2P-Anbieter eine Seite anbieten, auf der Kunde (durch Eingabe der DocID) die Druckvorlage nachträglich generieren kann.
Produkt ändern oder löschen
Wählt der User im Warenkorb die Funktion "Produkt ändern" oder "Produkt löschen" bei einem Produkt mit vorhandener DocID, so wird seine Gestaltung im W2P-System ungültig (DocID wird gelöscht) und er muss diese, wenn gewünscht, erneut durchführen. Der Besteller kann durch ein JavaScript-Popup o.ä. darauf hingewiesen werden, dass er seine Gestaltung erneut vornehmen muss, wenn er das Produkt ändern oder löschen möchte.
Add Comment