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
232
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
JTL Rest API als Dienst JTL-Wawi 1.10 5
JTL Wawi REST API 0.0.0.0 JTL-Wawi 1.10 4
JTL Retoure Umtausch anlegen und Rest erstatten JTL-Wawi 1.9 1
Neu JTL POS Teilieferung Allgemeine Fragen zu JTL-POS 0
Neu 📢 Neues Plugin "JTL Translate Pro" by Nirico.de Plugins für JTL-Shop 0
Neu Shopify Kategorie /(Produkt Taxonomie) und kategoriespezifische Attribute in JTL Wawi pflegen Shopify-Connector 0
Neu JTL PayPal Plugin - keine Einstellmöglichkeiten, keine Anzeige im Frontend Plugins für JTL-Shop 2
Neu JTL-ShippingLabels und DHL JTL-ShippingLabels - Fehler und Bugs 2
Neu Ihr Token bei JTL-eazyAuction ist ausgelaufen - Verletzung von Nebenpflichten (Treue- und Informationspflicht) durch JTL Einrichtung und Installation von JTL-eazyAuction 3
Neu Versandmeldungen werden nicht übertragen von JTL an Shopify, Shopify-Connector 4
Neu JTL Wawi Auswertungen - Abweichungen zum Steuerberater User helfen Usern - Fragen zu JTL-Wawi 6
Neu Verschachtelte Stücklisten in JTL-Wawi User helfen Usern - Fragen zu JTL-Wawi 2
Neu JTL-Shop 5.6 - Aktuell 5.6.0 Releaseforum 0
Anhänge in JTL-Wawi bei Rechnung JTL-Wawi 1.10 0
Neu Download-Artikel mit dem Download-Modul anbieten JTL SHOP Plugins für JTL-Shop 5
Neu Magento2 mit Synesty in JTL-Wawi verbinden Allgemeines zu den JTL-Connectoren 9
Neu Bonuspunkte sammeln mit JTL-Pos Allgemeine Fragen zu JTL-POS 0
Neu Abgleich WooCommerce / JTL mit dem Connector – Fehlermeldung WooCommerce-Connector 0
Neu WMS-Lager lässt sich nicht anlegen – Meldung „Sie besitzen keine Lizenz für JTL-WMS“ trotz gebuchtem WMS Start Installation von JTL-WMS / JTL-Packtisch+ 3
Neu XML-Import in JTL-Wawi – Kundenfelder werden nicht übernommen Schnittstellen Import / Export 1
Neu JTL Wawi und Etikettendrucker Brother QL-820NWBc Installation von JTL-Wawi 2
Neu Die folgenden Dateien sind nicht identisch mit den Dateien der aktuellen Version von JTL-Shop. Allgemeine Fragen zu JTL-Shop 0
Neu Auswahl im JTL Shop - keine Rechnung beilegen - wie in Wawi einlesen ? User helfen Usern - Fragen zu JTL-Wawi 6
Neu Ebay Konto entfernen JTL Kundencenter Einrichtung und Installation von JTL-eazyAuction 0
Neu JTL Consent Manager - Alles ablehnen Button? Plugins für JTL-Shop 3
Neu Discount Regeln in JTL hinterlegen und zu Woocommerce synchronisieren WooCommerce-Connector 0
Neu Probleme mit der Email über jtl hosting (plesk) User helfen Usern 2
Neu PIM -> Shopware 6 <-> JTL Shopware-Connector 12
JTL Wawi App Bestände pflegen JTL-Wawi App 0
Neu JTL POS Zahlvorgang JTL-POS - Ideen, Lob und Kritik 1
Neu Aus JTL Wawi übernommene Aufträge in JTL POS ergänzen JTL-POS - Ideen, Lob und Kritik 0
Neu PromoBar-Portlet für JTL-Shop 5 – Aktionsleiste, Gutschein & Countdown Plugins für JTL-Shop 0
Neu JTL STAMMTISCH HANNOVER Messen, Stammtische und interessante Events 0
Neu JTL STAMMTISCH BERLIN Messen, Stammtische und interessante Events 0
Neu JTL STAMMTISCH MÜNCHEN Messen, Stammtische und interessante Events 0
Neu POS Server JTL Wawi 1.10.14.0 Einrichtung / Updates von JTL-POS 1
Neu JTL-Shop-Template Technik – optimiert für Performance & Conversion Templates für JTL-Shop 5
Neu GA4-Tracking für JTL-Shop 5 – sauberes E-Commerce & Kategoriepfade Plugins für JTL-Shop 0
Neu JTL-WMS + eazyShipping: Versandart & Gewicht automatisch beim Scan (Stücklisten) Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
JTL Wawi: Kompatibel mit WPC Product Bundles for WooCommerce JTL-Wawi 1.9 0
Neu Fehler beim Übertragen von Bildern JTL - Shopware Thumbnail Problem height width dürfen nicht leer sein Shopware-Connector 5
Neu Welche URLs/Ports werden für den JTL Worker benötigt? User helfen Usern - Fragen zu JTL-Wawi 8
Neu Artikelseiten 500 HTTP Fehler PayPal Plugin 2.1.0 JTL Shop 5.4.0 Plugins für JTL-Shop 4
JTL-Workflows >> Aufträge >> Ausgeliefert >> Abrechnungsposition für Versandkosten hinzufügen JTL-Wawi 1.10 3
Neu Rechnungsnummer an JTL-Shop übertragen Technische Fragen zu Plugins und Templates 0
Neu JTL Unicorn Otto Coupons User helfen Usern 0
Neu JTL POS: wie Position Übersicht neben dem Eingabebereich? User helfen Usern - Fragen zu JTL-Wawi 0
Beantwortet Einen 2. JTL-Shop5 mit dem gleichen PayPal-Account verbinden Einrichtung JTL-Shop5 7
Neu Lagerplätze und Bestände lassen sich teils nicht im WMS Lager importieren? Evtl. BUG --> JTL 1.10.10.4? User helfen Usern - Fragen zu JTL-Wawi 1
Neu JTL mit Shopify für Etsy anstatt JTL mit Unicorn2 - hat das jemand gemacht? Anbindung, bestehende Artikel mappen? Multishop? Shopify-Connector 2

Ähnliche Themen