Neu JTL Rest API

mschop

Aktives Mitglied
21. März 2018
94
10
Hallo Zusammen,

ich überlege, eine REST API für die JTL-Wawi zu programmieren. Aktuell nutzt mein Unternehmen eine Eigenentwicklung um Prozesse in der Wawi zu automatisieren. Mein Idee ist es, das ganze aufzubereiten und daraus ein OpenSource Projekt (GPL) zu machen um hier in der Entwicklung schneller voran zu kommen und ein breiteres Spektrum an Funktionalitäten abzudecken. Ich würde gerne wissen:

  • Habt ihr Interesse an einer solchen Lösung?
  • Wofür würdet ihr diese einsetzen?
  • Wer ist Entwickler und würde sich an der Entwicklung beteiligen?
  • Welchen Technologie-Stack würdet ihr bevorzugen?
  • Sollte ich das Projekt starten: Wie soll es genannt werden. Aktuell schwebt mir JAPI vor :D. Aber ich bin für Vorschläge offen.
Aktuelle Überlegungen zum Technologiestack:
Die aktuelle Lösung ist in PHP (Slim Framework) programmiert. Das funktioniert soweit ganz gut, allerdings ist es auch keine eierlegende Vollmilchsau. Z.B. könnte man diese Lösung bei den meisten Hosting-Anbietern nicht einsetzen, da dort die Installation des MSSQL-Treibers nicht möglich ist. Zudem würde ich wenn von Slim Framework auf Symfony wechseln.
Von daher bin ich offen zu den eingesetzten Technologien. .NET, NodeJS, PHP, ...: Was würde aus eurer Sicht am meisten Sinn machen? Von denjenigen, die gerne die Entwicklung Unterstützen möchten: Welche Sprachen beherrscht ihr?

Features:
  • Multiuser (Authentifizierung & Authorisierung)
  • Administrationsbackend (um z.B. auth zu konfigurieren)
  • Bereitstellen sämtlicher Entitäten der Wawi über eine REST-API (soweit technisch machbar)

Danke im Voraus für Feedback

Gruß
mschop
 

ag-websolutions.de

Sehr aktives Mitglied
29. Dezember 2009
14.548
233
kann doch mit einer MSSQL interagieren oder nicht?

Prinzipiell schon, aber das "warum" führst du doch schon selber aus.
Je nach Entwicklungsumgebung sind spezielle Treiber, spezielle DLLs or what ever erforderlich, die eben auf dem Rechner nicht zur Verfügung stehen bzw. zur Verfügung gestellt werden können.

Setzt du zu spezielle Systemumgebungen voraus, schränkst du natürlich den Nutzerkreis erheblich ein.
 

mschop

Aktives Mitglied
21. März 2018
94
10
@ag-websolutions.de Das hängt sehr von der Programmiersprache ab. Unter NodeJS z.B. gibt es auch einen in NodeJS geschriebenen Treiber, der keine Systemabhängigkeiten voraus setzt. Oder Go-Lang -> Da wird der Treiber mit in die ausführbare Datei kompiliert. Also Möglichkeiten gibt es da schon, das unabhängig von der Umgebung einfach zum laufen zu bekommen. PHP war jetzt ein Fall, wo man erst einen Treiber installieren muss. Da das Setup eines Webservers allerdings eh ein wenig Grundwissen voraus setzt, würde 'JAPI' eh einen ITler vorraussetzen, der die Umgebung einrichtet. Es ist nicht so gedacht, dass das jeder Wawi-Nutzer installieren sollte, sondern eher für jene, die einen solchen Application-Server zu bedienen wissen.
 

Eiko

Aktives Mitglied
26. Juni 2017
58
3
Ich würde mir sowas sicherlich gern anschauen.

Rechnung schreiben im Außendienst wäre so ein Fall, wo eine einfach zu handhabende Schnittstelle sicherlich hilfreich ist. Wir nutzen die Wawi zum größten Teil klassisch als Warenwirtschaft für unser B2C- und B2B-Geschäft. Aktuell noch ohne Shop und Onlineanbindung. Ich habe schon öfter mit dem Gedanken gespielt, dem Ganzen eine Schnittstelle zu verpassen. Für unseren Außendienst habe ich einen Webserver per VPN angebunden, wo diverse Sachen abrufbar sind, welche Daten vom internen Datenbankserver beziehen. Und da liegt es nahe, eine Anbindung an die Wawi aufzusatteln. Zeit und Muße fehlten allerdings bisher... :)
 

mschop

Aktives Mitglied
21. März 2018
94
10
Hallo Zusammen,

hier ein kleines Update.

Aktuell tendiere ich dazu, PHP als Unterbau zu nehmen. Hierfür gibt es verschiedene Gründe:

  • Ich kenne PHP/Symfony/Doctrine am besten. Daher werde ich hier schneller Ergebnisse erzielen als in anderen Sprachen. Die Nachteile im Deployment werde ich mit Docker oder Vagrant ausgleichen.
  • NodeJS fliegt aus der Kandidaten-Liste raus. Es gibt dort keinen gescheiten (gut dokumentierten) Query-Builder oder ORM für MSSQL. (Wenn ihr einen kennt, immer her mit den Links)
  • C# / .NET -> Wäre eine Möglichkeit. Allerdings habe ich mich immer über NuGet bzw. im Allgemeinen die Paketverwaltung aufgeregt, wenn ich mit C# gearbetet haben. Außerdem waren meine Erfahrungen beim Deployment in der Vergangenheit eher "durchwachsen". Visual Studio ist mir zu teuer und Visual Studio Code ist mir noch nicht weit genug entwickelt. Aber im Endeffekt ist es eher Punkt 1 ;)
  • GoLang -> Da konnte ich auch kein passendes ORM oder QueryBuilder finden.

Bezüglich des Namens: Es wird ggf. auf den Namen "JPI" hinaus laufen.

@Eiko Könntest du bei der Entwicklung unterstützen? Gerne auch für Testing oder Dokumentation etc..

@Rico Giesler Welche Voraussetzung müssen erfüllt sein, damit der Einsatz von JPI keine Einfluss darauf hat, ob JTL noch Support leistet? Ich erinnere mich daran, dass bei https://github.com/GuybrushX/JtlDbWrapper extra darauf hingewiesen wird, dass in einem solchen Falle kein Support geleistet wird.


Bis dahin...

Gruß
mschop
 

Eiko

Aktives Mitglied
26. Juni 2017
58
3
Im Rahmen meiner Möglichkeiten sicherlich gerne. PHP-Kenntnisse sind bei mir nur grundlegend vorhanden, eher .NET, da aber auch nur (fortgeschritten) VB, daher dann eher Hilfe beim Testen/Dokumentation.
 

luffi

Aktives Mitglied
6. November 2013
50
16
Ich werfe hier nochmal .NET in den Ring. Ich habe mit .NET Core und dessen WebAPI features gute Erfahrungen gemacht. Das EF Core nimmt Form an, und ist mittlerweile brauchbar und auch einigermaßen Performant.
Als Vorteil des .NET frameworks ist, dass du eben auf JTL Hausmittel zurückgreifen kannst, falls nötig. Die freigegebene JtlWawiExtern.dll kann plötzlich von Nöten sein - und dann ist es ärgerlich, wenn du nicht weiter kommst weil du auf PHP und Symfony gesetzt hast.

Ich warne davor, voreilige Schlüsse zu ziehen, nur weil die NuGet Paketverwaltung und die IDE dir mal nicht gefallen haben... :)
Du kannst die Visual Studio Community Edition für das Projekt nutzen, da das ganze Projekt ja Open Sourced werden soll. Somit wirst du dann, falls du es in Firmenregie entwickelst, auch licence compliant.
Zum hosten der WebAPI kannst du auch Docker oder eine IIS Instanz nutzen.

Egal für welche Basis du dich entscheidest, bin ich bereit mir deinen Code anzuschauen und ein zu Testen - falls mir die Zeit dies zulässt.
 

mschop

Aktives Mitglied
21. März 2018
94
10
Ich werfe hier nochmal .NET in den Ring. Ich habe mit .NET Core und dessen WebAPI features gute Erfahrungen gemacht. Das EF Core nimmt Form an, und ist mittlerweile brauchbar und auch einigermaßen Performant.
Als Vorteil des .NET frameworks ist, dass du eben auf JTL Hausmittel zurückgreifen kannst, falls nötig. Die freigegebene JtlWawiExtern.dll kann plötzlich von Nöten sein - und dann ist es ärgerlich, wenn du nicht weiter kommst weil du auf PHP und Symfony gesetzt hast.

Ich warne davor, voreilige Schlüsse zu ziehen, nur weil die NuGet Paketverwaltung und die IDE dir mal nicht gefallen haben... :)
Du kannst die Visual Studio Community Edition für das Projekt nutzen, da das ganze Projekt ja Open Sourced werden soll. Somit wirst du dann, falls du es in Firmenregie entwickelst, auch licence compliant.
Zum hosten der WebAPI kannst du auch Docker oder eine IIS Instanz nutzen.

Egal für welche Basis du dich entscheidest, bin ich bereit mir deinen Code anzuschauen und ein zu Testen - falls mir die Zeit dies zulässt.

Danke für das Feedback. Ich werde mir das nochmal detaillierter anschauen. Folgende Frage hätte ich allerdings noch: Wofür brauche ich die JtlWawiExtern.dll? Soweit ich weiß, kann man darüber z.B. den Druck von Dokumenten anstoßen. Gibt es abgesehen davon noch Dinge, die man über die DLL machen, die ich sonst nicht über die DB direkt machen kann? Den Druck von Dokumenten habe ich z.B. über zeitversetzte Workflows, die vom Worker ausgeführt werden, gelöst. So habe ich es umgangen, mit der JtlWawiExtern.dll interagieren zu müssen. Ich stelle mir das auch gerade für eine REST-Web-Api als Performancekiller vor, wenn ich die Dokumente direkt aus dem Webprozess heraus erstellen lasse. Das müsste dann eigentlich über einen Scheduler oder halt den Worker zeitversetzt passieren.
 

luffi

Aktives Mitglied
6. November 2013
50
16
Du kannst über die JtlWawiExtern.dll mit der Wawi kontrolliert interagieren. Aufträge erstellen, Gutschriften erstellen, Versanddaten importieren, Workflows ausführen - das kannst du alles auch direkt über die Datenbank machen, jedoch hast du durch die DLL ein von JTL definiertes Interface. Das bedeutet, dass die DLL bzw. die dort damit definierten Methoden automatisch dafür sorgen sollten, die notwendigen Schritte einzuleiten um die Integrität der Daten zu bewahren. Das wird JTL sicherlich auch besser gefallen, als direkt in der DB herumzuspielen.
Es ist an sich "sauberer", da du durch den von JTL vordefinierten Weg gehst. Ein wenig wie die Ameise, nur besser. :)
.Net Core hat asynchrone Calls - die, so denke ich, genau für den Fall brauchbar sind.
 
  • Gefällt mir
Reaktionen: Eiko

mschop

Aktives Mitglied
21. März 2018
94
10
@ JTL : Wäre schön, wenn ihr eine verbindliche Aussage zu dem Thema machen könntet. Wie würdet ihr Supportfälle handhaben? Nehmen wir an jemand setzt JPI ein. Würdet ihr dann im Supportfalle die Arbeit einstellen, wenn ihr seht, dass dort JPI eingesetzt wird?
 

Thomas Lisson

Administrator
Mitarbeiter
24. März 2006
15.574
300
Köln
Hi,

wir können dir hier keine verbindliche Aussage geben. Wenn wir merken, dass es Kunden gibt mit inskonsistenten DBs, die JPI eingesetzt haben, dann werden wir keinen Support bieten. Wenn sich das aber problemlos gestaltet, dann kann es sein, das wir darüber hinwegsehen.
 

mschop

Aktives Mitglied
21. März 2018
94
10
@Thomas Lisson Ich überlege JPI erweiterbar zu bauen. Soll heißen, manche Probleme können zum Beispiel durch Anpassungen von einzelnen Händlern kommen und müssen nicht ein grundsätzliches Problem von JPI sein.

Ab welcher Anzahl von Inkonsistenzen würdet ihr den Support einstellen. JTL schafft es ja schon selbst mit der Wawi, inkonsistenzen in der Datenbank hervor zu rufen. Wie sollte ich es daher jemals sicherstellen, dass nicht irgendwann mal eine Inkonsistenz auftritt? Wenn ihr bei dem ersten Problem direkt den Support einstellt, brauche ich das Projekt nicht weiter zu verfolgen und spare mir viel Zeit ;).
 

Thomas Lisson

Administrator
Mitarbeiter
24. März 2006
15.574
300
Köln
Hi mschop,

ich kann dir hier keine pauschale Antwort geben. Wenn es unseren Support belastet, dann können wir es nicht supporten. Ob es 5 oder 50 Fälle sein müssen, kann ich nicht sagen. Es hängt vom Aufwand ab, der uns dadurch entsteht.
 

mschop

Aktives Mitglied
21. März 2018
94
10
@Thomas Lisson Ok. Schade. Die Aussage ist mir leider zu unkonkret. Ich werde nicht das Risiko eingehen und meine Lebenszeit für das Projekt opfern, wenn am Ende das Risiko besteht, dass es keiner nutzt aus Sorge, JTL könnte den Support verweigern.

Ich finde es etwas schade, dass eine Belastung eures Supportes ein solches Projekt im Keim erstickt. Ich verstehe zwar euren Standpunkt, sehe da aber andere Software-Anbieter deutlich weiter als euch. Bei kostenlosen JTL-Wawi-Installationen kann ich es ja noch verstehen. Aber wenn jemand entsprechend Geld bei euch lässt, sollte das doch eigentlich möglich gemacht werden. Ggf. auch über einen zusätzlichen Supportvertrag oder gegen entsprechende Vergütung. Aber die betroffenen Kunden dann einfach im Regen stehen zu lassen, finde ich nicht OK.

Von daher RIP JPI ;)
 
  • Gefällt mir
Reaktionen: bbfdesign und Walther
Ähnliche Themen
Titel Forum Antworten Datum
Neu JTL-Wawi REST API (Beta): HTTP 402 "Zahlung erforderlich" auf allen Endpunkten trotz gebuchter Beta-Lizenz Schnittstellen Import / Export 2
Neu JTL REST API (on premise) - welche API Version ab welcher Wawi-Version? Changelog? Schnittstellen Import / Export 0
Neu Ab welcher JTL Wawi Version ist der OnPremise REST API Endpoint POST /v2/returns oder POST /v1/returns für Create Return verfügbar? Schnittstellen Import / Export 0
Neu JTL Search blockiert unsere Shops JTL-Shop - Fehler und Bugs 0
Wichtig JTL-ShippingLabels 1.0: Support-Ende GLS/DPD und Migration von JTL-Start-Kunden nach dem 30. September News, Events und Umfragen 11
Neu JTL Shop 5.7.2 NOVA - Akkordeon Überschriften herabstufen auf H3 Templates für JTL-Shop 3
Kasse in JTL-Wawi 2.0 einbinden JTL-Wawi 2.0 1
Neu JTL-WAWI 2.0.5 Worker läuft nicht mehr und Versandarten werden falsch ausgegeben. JTL-Wawi - Fehler und Bugs 1
JTL-WAWI 2.0.5 Worker läuft nicht mehr und Versandarten werden falsch ausgegeben. JTL-Wawi 2.0 1
Neu Login-Fehler 403 bei app.shipping.jtl-cloud.com seit 17.07.2026 JTL-ShippingLabels - Fehler und Bugs 7
Neu 🚨 Sicherheitswarnung für JTL-Shop-Betreiber: Manipulation des Checkout-Prozesses durch externes JavaScript (Magecart- / Payment-Skimmer) Betrieb / Pflege von JTL-Shop 2
Neu JTL-Shop Konfigurator - die Ausgewählten Konfigurator gruppen werden im Artikel nicht vollständig angezeigt User helfen Usern - Fragen zu JTL-Wawi 2
Neu JTL-Shop 5 Backup Professional Plugin Plugins für JTL-Shop 0
JTL reaktiviert keine Angebote mehr auf Otto Otto.de - Anbindung (SCX) 1
Verbesserungsvorschlag: JTL-POS – Artikel mit Preisabfrage und vollständiger Wawi-Statistik JTL-Wawi 2.0 4
Neu JTL-ShippingLabels-Server ist nicht erreichbar JTL-Wawi - Fehler und Bugs 0
Neu JTL Shipping Labels 4.0 Sendungsnummer Kleinpaket nicht an Amazon übermitteln JTL-ShippingLabels - Ideen, Lob und Kritik 0
Neu Plugin trotz Hinweis Kompatibel mit JTL-Shop bis 5.6.* auch unter 5.7.2 nutzen Plugins für JTL-Shop 2
Neu Aktuelle JTL Shop Sicherheitslücke - automatischer Patch im JTL Hosting ? Allgemeine Fragen zu JTL-Shop 15
Neu JTL-Wawi 1.11.7: Shopify-PDF aus Bestellmetafeld automatisch als Auftragsanhang übernehmen Shopify-Connector 1
Neu Suche 10–15 JTL-Shops für kostenlose JTL-Shop-Analyse (verschiedene Branchen) Dienstleistung, Jobs und Ähnliches 0
JTL 2.0.4: Zahlungsabgleich - Buchungen Fehlen JTL-Wawi 2.0 0
Neu JTL-Shop 5.7.2 Picture-Tag in mobilen Ansicht lädt beide Bilder JTL-Shop - Fehler und Bugs 0
Seit dem Update meines JTL-Shops auf Version 5.7.1 funktioniert die Verbindung zwischen JTL-Wawi 2.0.4.0 und dem Shop nicht mehr. JTL-Wawi 2.0 6
Neu JTL-WMS und JTL-POS... Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Fehlermeldung beim Einlesen der Buchungen in JTL Fibu JTL-Wawi 2.0 2
Neu Shop 5.7.2 - JTL PayPal Checkout legt alles lahm JTL-Shop - Fehler und Bugs 4
JTL-Ameise 2.04 - Export Rechnungen csv - unvollständig JTL-Wawi 2.0 13
Neu Belege aus JTL Wawi zu Lexoffice Schnittstellen Import / Export 5
Neu Varianten die nicht online in JTL geschaltet sind werden trotzdem zu Shopify geladen Shopify-Connector 6
Neu Gesucht: JTL-Systempartner/Freelancer mit Erfahrung in Personalisierungs-/Gravur-Fulfillment Dienstleistung, Jobs und Ähnliches 2
Neu JTL Stammtisch Stuttgart Messen, Stammtische und interessante Events 1
Neu Copy/Paste Abstürze seit JTL-Wawi 2.0.5 User helfen Usern - Fragen zu JTL-Wawi 4
Gelöst: Störung bei LInk11 - JTL- Shops teilweise nicht erreichbar Störungsmeldungen 1
JTL Update auf 1.9 , danach Import Kundenspezifrische Preise velerhaft JTL-Wawi 1.9 0
Wie übernehme ich Artikelnamen von JTL in den neuen Kaufland Niederlande-Verkaufskanal? JTL-Wawi 1.11 1
Neu Wie stelle ich Retouren in JTL für DPD ein? JTL-ShippingLabels - Ideen, Lob und Kritik 1
Neu JTL Wawi 1.11.11 - Zahlungsabgleich bei FYRST Bank verlangt immer Passwort User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTL Shop Plugin - BD Automatisierter Widerruf (Von Händler für Händler - Schluss mit Mail-Chaos & Spam-Sorgen!) Plugins für JTL-Shop 0
Neu Der wahrscheinlich östlichste JTL Servicepartner: Standortvorteil, faire Preise und vieles mehr Dienstleistung, Jobs und Ähnliches 16
Neu Welche JTL Shop Plugins oder kleinen Hilfstools würden euch im Alltag wirklich helfen? Plugins für JTL-Shop 0
Neu JTL ShippingLabels - Meldungen JTL-ShippingLabels - Fehler und Bugs 9
Neu Beta-Tester gesucht: Produktdaten aus Artikelfotos schneller für JTL/CSV vorbereiten Dienstleistung, Jobs und Ähnliches 0
Neu oAuth Credentials Login mit JTL .. WO? User helfen Usern 1
Neu Installationsdatei für JTL‑Wawi 1.9.6.5 Installation von JTL-Wawi 2
Neu kostenlos: DHL Sendungsverfolgung für JTL-Wawi – Web-Dashboard mit Frühwarnsystem Schnittstellen Import / Export 0
Neu JTL Wawi 2.0 oder höher WooCommerce-Connector 0
Changelog jtl Wawi 2.0.5 JTL-Wawi 2.0 13
Neu Ist es ohne Probleme möglich Cloudflare in der Free Version mit JTL zu nutzen? Allgemeine Fragen zu JTL-Shop 7
JTL 5.7.1 Widerrufsformular massiver SPAM Einrichtung JTL-Shop5 3

Ähnliche Themen