Etsy Rechnung mit Python Script erstellen / automatisieren

Etsy Rechnung mit Python Script erstellen / automatisieren.

Etsy ist der größte Marktplatz für DIY und selbstgemachtes. Mit einem meiner freiberuflichen Projekte verkaufen wir nun dort – passend zur Weihnachtszeit – das SternFeuer. Das sind kleine Sterne aus Isomalt, (nächstes Jahr dann auch Zucker) die man an den Rand der Tasse anstecken kann. So braucht man keine zusätzliche Feuerzange oder spezielle Tasse mehr um eine kleine Feuerzangenbowle zuzubereiten. Aber zurück zu Etsy.

Etsy Rechnung als Verkäufer? Muss man selber machen, man kann es aber automatisieren.

Ungleich zu anderen Plattformen wie Amazon oder halt mit Plug-ins bei WooCommerce, hält Etsy es nicht für nötig, seinen Kunden automatisierte Rechnungen zu erstellen, dabei wäre das eigentlich recht einfach.

In der Dokumentation zur API gibt es sogar ein Tutorial zum erstellen eines receipt-generators. Wer da mal reinschauen möchte, </hier> ist der Link.

Ich bin aber ein Lappen was coding angeht und hab daher nur zustande gebracht ein Python Script zu schreiben, das aus einer csv Tabelle mit den Bestellungen, einem svg Template und Inkscape, vollwertige Etsy Rechnungen erstellen kann. So kann man dann z.b. monatlich einmal kurz die csv von Etsy laden, und per Doppelklick auf ein batch-script die Rechnungen erstellen lassen.

Der ganze Code, sowie die Template-Files sind bei meinem GitHub zu finden. Hier noch die N00b-freundliche Anleitung:

Installation

Ihr müsst, damit das ganze auch funktioniert, zunächst Python 3 auf eurem Rechner installieren. Besucht dazu die offizielle Website unter: https://www.python.org/downloads/

Hier laden wir uns Python in der aktuellen Version runter, in dem wir auf den großen, gut sichtbaren Button klicken 🙂

Die .exe starten wir mit einem Doppelklick und ein Installations-Wizard öffnet sich. Hier klicken wir uns einmal durch.

Wenn wir nun auf den blauen Hinweis klicken „Disable Path length Limit“, kommt kurz eine Windows Sicherheitswarnung und dann hat es wohl schon funktioniert und wir können den Installations-Dialog schließen.

Alternativ kann python 3 auch über den microsoft store installiert werden.

Zu PATH hinzufügen

Damit Python von jedem Ort (also aus jedem Ordner heraus) gestartet werden kann, macht es Sinn, Python zum Windows PATH, also zum Stammpfad sozusagen, hinzuzufügen. Zu Deutsch sind das die SystemUmgebungsVariablen. Wir können im Start-Menü einfach Path in die Suche eingeben, Windows weiß schon wonach wir suchen.

Im neuen Fenster gehen wir im Reiter Erweitert (sollte schon direkt geöffnet worden sein) unten auf den Button mit „Umgebungsvariablen“. Dann wählen wir Path und gehen wieder auf den Button „bearbeiten“. Wenn nicht schon ein Eintrag zu finden ist, der was von Python sagt, legen wir einen neuen an und fügen den folgenden Pfad ein:

C:\Users\USERNAME\AppData\Local\Programs\Python\Launcher\

Wobei ihr USERNAME natürlich mit eurem Windows-Benutzernamen austauschen müsst.

Dann machen wir noch einen Eintrag für die Python Scripts:

C:\Users\USERNAME\AppData\Local\Programs\Python\Python312\Scripts

Achtet hier auf die korrekte Python Version und euren Windows Benutzernamen.

Files von GitHub herunterladen

Nun können wir das Script und die Templates von GitHub herunterladen. Das geht natürlich mit git-clone für die versierten User, die das hier aber kaum lesen werden. Wir gehen also ins Repository auf Github unter der folgenden URL: https://github.com/partofthecurse/etsy-invoice-generator

Hier klicken wir auf Code und dann auf Download ZIP.

Das ZIP-File entpacken wir ganz einfach mit den Windows-Tools, oder 7ZIP, oder was ihr bevorzugt.

Inkscape Etsy Rechnung Template anpassen

Hier hab ich schon ein Inkscape Etsy Rechnung Template angelegt für euch. (SEO lässt grüßen). Hier müsst ihr alle Platzhalter mit % unbedingt so lassen wie sie sind. Am besten auch nix verschieben, da mein Code die Reihen untereinander anordnet und auch neue Seiten einfügt, wenn die Seite zu voll ist. Das tut es aber blind und passt halt nur für das mitgelieferte Template. Ist halt DIY 🙂

Oben Rechts könnt ihr ganz einfach eure ladungsfähige (yes, ladungsfähig!) Adresse und den Unternehmensnamen eintragen. Das graue Kästchen kann gegen euer Logo ausgetauscht werden. Außerdem sollte die Fußzeile angepasst werden.

Inkscape gibt es hier: https://inkscape.org/de/

Wer noch keine Inkscape Erfahrung hat, ist hier vermutlich schnell an der Grenze. Youtube hilft 🙂 Wer lieb ist, darf auch mich auch fragen. (Dezenter Hinweis auf den KO-Fi button).

Inkscape muss aber in jedem Fall installiert werden, da wir die PDF-Umwandlung am Ende damit auch abbilden. Am allerbesten fügt ihr auch den Pfad zu Inkscape zum Path hinzu.

Das fertige Rechnungs-Template speichern wir also einfach ab und weiter geht`s. Bitte nicht den Namen der Datei ändern, sonst geht der Rechnungsgenerator nicht mehr. Falls ihr das original Template behalten wollt, könnt ihr es ja als Kopie speichern oder neu bei Github ziehen.

Dependencies installieren

Damit der ganze Bums funktioniert, brauchen wir noch ein paar Python-Bibliotheken (eigentlich nur eine), die diverse Funktionen ausführen.

Um diese zu installieren öffnen wir das Windows Terminal bzw. die Windows Power Shell. Mit dem Shortcut: win + R öffnen wir das „Ausführen“ Fenster, geben hier dann cmd ein und bestätigen. Oder wir gehen über das Startmenü.

Im Terminal geben wir den folgenden Befehl ein:

pip install lxml

pip ist die integrierte python paket verwaltung, und erleichtert uns das leben ungemein. Hier gibt es 100.000ende praktische Module, um Programmfunktionen zu lösen, ohne das man das Rad neu erfinden muss. lxml ist eine Bibliothek zum manipulieren von LXML-Strukturbäumen. SVG Bild-daten lassen sich so beispielsweise bearbeiten, da hier ein XML-Strukturbaum zu Grunde liegt. Den kann man in Inkscape sogar Visualisiert sehen und dort auch manipulieren.

Bei mir kam noch der Hinweis, das ich pip updaten kann, was ich dann auch gemacht hab. Dann kam direkt auch die Warnung, dass ich den Path-Eintrag ädern sollte, aber das ist uns als Nicht-Power-User erstmal egal.

Etsy CSV herunterladen

Nun kommt das Herzstück – und zwar die Daten aus Etsy. Wir gehen in unseren Store-Manager und gehen links auf Einstellungen – Optionen. Nun wechseln wir auf den Reiter „Daten herunterladen“. Wir wählen unter Bestellungen im DropDown „Bestellte Artikel“ aus und können dann den gewünschten Monat auswählen. Dann laden wir die Datei mit dem Button „csv herunterladen“ runter. Speichert die Datei bitte im dem Ordner, in dem die Files von Github gelandet sind.

Nun nennen wir die Datei orders.csv in orders-example.csv um und die eben geladene Datei von etsy wird zu orders.csv.

Script ausführen

Last but not least – wir starten das Script für unseren Etsy Rechnungs Generator 5000! Das geht in der Windows Konsole in dem wir den Befehl ein:

python invoice-generator.py

Hier gibt es aber einen Haken: Ihr müsst das Terminal in dem Ordner starten, in dem das ganze Zeug liegt. Dazu gehen wir im Explorer einfach in den Ordner, klicken mit der Rechten maustaste in den freien Bereich und wählen „in Terminal öffnen“.

Damit wir es aber leichter im Leben haben, hab ich ein batch-script angelegt, was einfach genau diesen Befehl ausführt. Das nennt sich GENERATE.bat und wird mit einem doppelklick gestartet. Klick-me war halt schon zu negativ verbraucht.

Nun werden die Rechnungen zunächst als .svg generiert, das sollte in der Konsole durch Logs sichtbar sein. Diese werden im Unterordner „invoice“ gespeichert. Nun gibt es hier auch einen weiteren Unterordner „pdf“. Hier findet ihr die fertigen PDF-Rechnungen. Die Dateien werden immer mit „etsy-invoice-AuftragsNR-Name benannt. Cool oder?

Was genau macht das Script

Das Python-Script geht einfach die Tabelle Zeile für Zeile durch und so lange der Name des Kunden gleich bleibt wird eine neue Zeile zur Rechnung hinzugefügt. Diese wird mit den Artikel-Daten aus der entsprechenden Zeile gefüllt. Wenn 7 oder 8 Zeilen erreicht sind, wird eine neue Seite angelegt, der Block mit der Endsumme aus der vorherigen gelöscht und so weiter. Außerdem wird die gesamt Seitenzahl aktualisiert.

Bitte beachtet: Ich bin kein Programmierer und hab nur oberflächliche, autodidaktisch erlernte Kenntnisse. Daher kann ich nur begrenzt bei Problemen aushelfen. Wenn ihr aber der Anleitung folgt, sollte das ganze ohne größere Probleme funktionieren. DER ETSY RECHNUNGS GENERATOR WIRD UNS ALLE ERSETZEN!

Viel Spaß!

Ich hoffe ich konnte einigen von euch das leben etwas leichter machen und auch für Anfäger erklären, wie man gewisse nervige Aufgaben mit python, bash-scripts und viel google, automatisieren kann.

Ich hab mehrere Abende für das Ding gebraucht, ein Pro macht das wahrscheinlich in unter 30 Minuten. Die meiste Zeit war trouble shooting.

Schreibe einen Kommentar

Geb mir einen aus :)

Wenn du das Zeug hier magst, denk doch über eine Spende nach um Server und Domain zu finanzieren.

$ Die mit einem $ gekennzeichneten Links, sind Affiliate Links. Wenn du über diese in den Shop gelangst und etwas kaufst, bekomme ich eine kleine Provision.

Suche & Filter