Moin Leute,
heute beschäftigen wir uns mit Laravel und wie man die Sevdesk API mit einbinden kann. Was uns dabei hilft, ist das Laravel Sevdesk Package was ich irgendwann mal angefangen habe zu entwickeln.Ursprünglich wurde das Package erstellt, um mir das Schreiben von Code zu erleichtern und um die Entwicklung zu vereinfachen. Dabei ist das Package noch lange nicht perfekt, also wenn ihr Anregungen oder Fehler findet, dann lasst es mich gerne wissen.
Was ist Laravel?
Laravel ist ein populäres PHP-Webframework, das Entwicklern dabei hilft, schnell und einfach moderne Web-Anwendungen zu erstellen. Es bietet eine Vielzahl von Funktionen und Werkzeugen, die es Entwicklern ermöglichen, robuste und skalierbare Anwendungen zu erstellen, ohne dabei von Grund auf neu entwickeln zu müssen. Laravel kommt mit einer MVC-Architektur und unterstützt verschiedene Datenbanken wie MySQL, PostgreSQL und SQLite. Es ist bekannt für seine leichte Bedienbarkeit und seine umfassende Dokumentation, die es Einsteigern leicht macht, schnell damit vertraut zu werden.
Und was ist Sevdesk?
Sevdesk versteht sich in erster Linie als Buchhaltungsprogramm, mit dem du zusätzlich deine Rechnungen verwalten kannst. In der Software sind auch eine Kontaktverwaltung, Vorlagen für Texte und Layouts sowie Analysetools enthalten. Mit dem Tarif „Warenwirtschaft“ kannst du SevDesk auch als Warenwirtschaftssystem nutzen.
Installation Laravel
Um das Package in unserem Laravel-Projekt zu verwenden, müssen wir zunächst sicherstellen, dass Laravel ordnungsgemäß installiert und eingerichtet ist. Die Installation und Konfiguration von Laravel ist nicht unser Hauptthema für heute, da es bereits viele andere Leute und Blogger gibt, die dies detaillierter beschrieben haben. Hier werde ich nur die Standard-Installation mithilfe von Composer zeigen. Zum Zeitpunkt der Veröffentlichung ist Laravel 9 die aktuellste Version.
composer create-project --prefer-dist laravel/laravel laravel-sevdesk
Installation Laravel Sevdesk Package
Das Sevdesk package wird ebenfalls über Composer installiert.
composer require exlo89/laravel-sevdesk-api
Konfiguration
Um die sevDesk API in Laravel zu verwenden, musst man zunächst ein sevDesk-Konto erstellen und einen API Token generieren. Den generierten API Token fügt man in die .ENV Datei mit dazu.
SEVDESK_API_TOKEN=secret_token
Das war es eigentlich fast schon...
… jetzt kannst du schon loslegen. Was jetzt noch fehlt ist eine eigen Instanz für das Package zu implementieren und dann kann man über die hilfreichen Funktionen Rechnungen erstellen, einsehen oder löschen. Schauen wir uns ein paar Beispiele an.
$sevdeskApi = SevdeskApi::make();
$sevdeskApi->contact()->createSupplier('Supplier Organisation', $parameters);
$sevdeskApi->contact()->createCustomer('Customer Organisation', $parameters);
$sevdeskApi->contact()->createPartner('Partner Organisation', $parameters);
$sevdeskApi->contact()->createProspectCustomer('Prospect Customer Organisation', $parameters);
Durch SevdeskApi::make() erstellen wir uns erstmal eine neue Instanz. Dann können wir wie hier im Beispiel verschiedene Kontakt erstellen. Das Abrufen von Kontakten sieht dann so aus.
$sevdeskApi->contact()->all();
$sevdeskApi->contact()->allSupplier();
$sevdeskApi->contact()->allCustomer();
$sevdeskApi->contact()->allPartner();
$sevdeskApi->contact()->allProspectCustomer();
Für Rechnungen gibt es auch schon einige Funktionen. Leider fehlen noch einige. Da bin ich noch dabei das zu verbessern. Was gut funktioniert ist das Abrufen von Rechnungen und das Downloaden. Und das Erstellen von Rechnungen ist jetzt auch möglich. Schaut dazu gerne mein Blog Beitrag dazu an.
$sevdeskApi->invoice()->all();
$sevdeskApi->invoice()->allDraft();
$sevdeskApi->invoice()->allOpen();
$sevdeskApi->invoice()->allPayed();
$sevdeskApi->invoice()->allByContact($contactId);
$sevdeskApi->invoice()->allAfter($timestamp);
$sevdeskApi->invoice()->allBefore($timestamp);
$sevdeskApi->invoice()->download($invoiceId);
$sevdeskApi->invoice()->sendPerMail($invoiceId, $email, $subject, $text);
Das Package, das ich erstellt habe, befindet sich noch immer im Entwicklungsprozess. Trotzdem nutzen es bereits einige Leute und das motiviert mich, daran weiterzuarbeiten und es mit neuen Funktionen und Verbesserungen zu erweitern. Für mich ist es auch eine großartige Möglichkeit, meine Kenntnisse über die Zusammenarbeit von Packages und Laravel zu vertiefen. Ich hoffe, dass es mir in Zukunft dabei helfen wird, Fehler frühzeitig zu erkennen und zu beheben.
Überlege ich mir auch, ob ich ein Video dazu aufnehmen soll. Vielleicht kann ich in dem Video noch weitere Details erläutern und Anregungen und Verbesserungsvorschläge von euch entgegennehmen. Wenn ihr Interesse daran habt, dass ich ein Video dazu aufnehme, schreibt es mir gerne in den Kommentaren. Wenn ihr selbst Ideen habt, wie das Package verbessert werden kann, freue ich mich auch über eure Vorschläge.
Das wars erstmal Leute, danke für eure Aufmerksamkeit und bis zum nächsten mal. 🙂