Dokumentation zur Erstellung eines JTL 1.0 Connectors

  • Wenn Ihr uns das erste Mal besucht, lest euch bitte zuerst die Foren-Regeln durch.
22. Januar 2014
8
0
Detmold
#1
Hallo,

ich bin auf der Suche nach Informationen zum Thema Implementierung eines JTL Connectors für JTL WAWI 1.0 auf dieses Forum hingewiesen worden.

Also: Wo finde ich Informationen über die Kommunikation zwischen JTL und Shop, um einen eigenen Connector zu schreiben?

Viele Grüße, Jan Krause
 

cspoo

Aktives Mitglied
15. April 2013
145
0
#3
AW: Dokumentation zur Erstellung eines JTL 1.0 Connectors

Hallo Jan,


wir haben ein öffentliches Git-Repository mit einer Beispielimplementierung für einen Endpoint. Du findest es hier: https://gitlab.jtl-software.de/jtlconnector/example-connector
Der Beispiel-Endpoint arbeitet auf einer kleinen SQLite-Datenbank, in der die empfangenen Daten gespeichert werden. Um das Kommunikationsprotokoll auf der untersten Schicht brauchst du dich nicht zu kümmern, das ist soweit gekapselt. Du solltest jedoch vertraut mit objektorientiertem PHP sein, sowie bereits mit Composer gearbeitet haben. Ansonsten wäre der Einstieg ziemlich schwierig.

Den Code kannst du gerne forken und als Ausgangsbasis für eigene Entwicklungen verwenden. Er steht genauso wie unsere offiziellen Endpoints unter der LGPL. Bitte bedenke, dass du in jedem Falle eine Connectorlizenz im Kundencenter benötigst, um deinen Code mit JTL- Wawi testen zu können. Hierzu wendest du dich am besten nochmals an uns, sobald du bereit für erste Tests bist.
 
22. Januar 2014
8
0
Detmold
#4
AW: Dokumentation zur Erstellung eines JTL 1.0 Connectors

Vielen Dank für die schnellen Antworten.
Ich entwickel nicht mit PHP sondern auf dem Microsoft Stack, werde mir die Beispielimplementierung aber anschauen.
Gibt es keine Infos auf Netzwerkebene? Also, wann JTL welche URL mit welchen Parametern aufruft und welche Daten in welchen Formaten erwartet werden?
Ich fürchte, um das Kommunikationsprotokoll komme ich nicht herum.

Viele Grüße, Jan
 

cspoo

Aktives Mitglied
15. April 2013
145
0
#5
AW: Dokumentation zur Erstellung eines JTL 1.0 Connectors

Alle Requests laufen auf die Connector-URL als POST-Request. Requestformat ist JSON, wir setzen es in einer Abwandung von JSON-RPC ein. Das wird auch schnell klar, wenn du die URL zu einem Connector einmal direkt aufrufst, denn auch die Exceptions werden als JSON-RPC-Messages übertragen. Das Ganze sieht in etwa so aus:

Code:
{
  "method": "...",
  "params": { ... },
  "jtlrpc": "2.0",
  "id": "..."
}
Vor dem ersten Request muss eine Authentifizierung mittels Auth-Token (den der Benutzer als Passwort in JTL- Wawi eingibt) erfolgen - ebenfalls per JSON-RPC. Diese liefert eine Session-ID zurück, die an die Client-IP-Adresse gebunden ist und die bei allen künftigen Requests als "id"-Parameter mitgeliefert werden muss. Läuft die Session ab - z.B. wegen eines Timeouts, wird eine SessionException geworfen, sodass der Client die Gelegenheit hat, erst eine neue Session anzufordern, bevor er den Request wiederholt.

Wir verwenden ein Protokoll, das RPC-Methoden der Form "<object>.<method>" kennt. Die häufigsten Methoden sind dabei "push"/"pull"/"delete" zur Übertragung bzw. zum Löschen von Daten, jeweils aus Sicht des Clients gesehen. Zusätzlich gibt es an den meisten Objekten eine Methode "statistic", die eine Information zurückliefert, wie viele Objekte zum Pull zur Verfügung stehen. Das gesamte Mapping zwischen den Primary-Keys des Servers und denen des Clients findet serverseitig statt - ebenso wie das Vorhalten der Infos, welche Objekte bereits gepulled worden sind und welche nicht.

Wenn du auf Basis des .NET-Frameworks arbeitest, könnte ich dir evtl. die C#-Schnittstellendefinitionen zukommen lassen, aus denen unsere PHP-Model-Klassen generiert werden. Wir verwenden die json.net-Bibliothek, um die Daten zwischen managed objects und JSON hin- und herzukonvertieren. Dann siehst du schon einmal, wie die Datenstrukturen aussehen, auf denen du arbeiten musst.
 
22. Januar 2014
8
0
Detmold
#6
AW: Dokumentation zur Erstellung eines JTL 1.0 Connectors

Hallo,

das klingt doch schon mal interessant.
Die C#-Schnittstellendefinition würde mich sehr interessieren!

Viele Grüße, Jan
 
22. Januar 2014
8
0
Detmold
#10
AW: Dokumentation zur Erstellung eines JTL 1.0 Connectors

Hallo Christian,

sind die Klassen vollständig? Den Bereich Aufträge / Orders konnte ich nicht entdecken, oder wie heißt das bei JTL?
Hast du evtl. noch Infos dazu, wie z.B. der Abruf von Bestellungen über den Connector aussieht? Also in welcher Reihenfolge welche Methode aufgerufen wird?

Sonst installier ich mir einen Shopware Testshop und schaue mir die Kommunikation da mal an.
 

Andrewbudy

Aktives Mitglied
17. Januar 2017
2
0
#13
Ich verstehe, aber C # -Modelle und Schnittstellen wurden an Jan Krause - Billbee gesendet. Ich bitte Sie, mir die gleichen Informationen zu schicken.
 

testjo

Sehr aktives Mitglied
1. Juli 2010
3.336
3
NRW GRENZE HOLLAND
#15
Die Daten waren lediglich ein Experiment und sind seit 1 1/2 Jahren (siehe Thread-Verlauf) nicht mehr vorhanden oder aktuell.
Die aktuell kompatible Schnittstellen-Definition für Entwickler ist hier zu finden: http://docs.jtl-connector.de/en/latest/
Frage warum hier EN-en ?
http://readthedocs.org/projects/jtl-connector/downloads/
SORRY /
\ /
\ This page does /
] not exist yet

Die link steht auf dieser Seite beim linker MEnu downloads
http://docs.jtl-connector.de/en/latest/