Neu Anbindung Sendcloud via REST Api

JulianO

Aktives Mitglied
24. Januar 2019
37
5
Moin

da es hier im Forum einige verwaiste Anfragen gibt zum Thema Sendcloud und JTL Wawi und ich für mich das Problem endlich gestern lösen konnte, habe ich mich entschlossen hier einen kleinen Leitfaden zu schreiben.

Anbindung erfolgt via Workflow.
Ich habe mich entschlossen, zumindest für die nächsten Bestellungen, den Workflow auf "Aufträge" - "komplett bezahlt" zu setzen. Natürlich kann man hier das für einen passende Ereignis nutzen.

Bekanntes Problem: Sollte kein Gewicht im Auftrag ermittelt werden, wird nichts an Sendcloud übertragen, da das Feld "Gewicht" nicht 0 sein darf. Lösung für mich: In der Versandart 10g "Zusatzgewicht" eintragen. in der Regel haben meine Artikel alle ein Gewicht drin, aber ab und an, habe ich es vergessen und umgehe so das Problem. Gewicht wird dann eh nochmal überprüft und angepasst.

Meine Lösung sieht vor, dass die Sendung angelegt wird mit den Kundendaten. ein Label wird nicht automatisch erstellt, da ich den Auftrag noch prüfen möchte. Das kann aber jeder natürlich anpassen, wie er möchte.
Für mich war die größte Hürde, wie man das Login per API und die grundsätzliche Abfrage durchführt. Da nun Felder zu ergänzen etc sollte für viele machbar sein.

So nun zum Weg:
Workflow erstellen, Bedingung bleibt (erstmal) leer. Aktion ist ein Webrequest (nicht Webrequest Post)

Im Webrequest selbst ist dann die Method: POST

URL: https://panel.sendcloud.sc/api/v2/parcels

Für das Login braucht ihr aus Sendcloud die API Keys. Den public und private key. Diese müsst ihr so in eine Zeile schreiben: public:private
Also hintereinander mit Doppelpunkt in der Mitte. Das alleine reicht aber nicht, sondern diese ganze Zeile nehmt ihr jetzt und lasst es durch irgendein online tool base64 encodieren. Der daraus resultierende Wert, den braucht ihr für das login. Dies herauszufinden hatte mich Stunden gekostet.

Dann geht in in das Feld Header, drückt die 3 Punkte und gebt da ein:

content-type: application/json
Authorization: Basic <euer base64 encodierter Wert>

Also ohne die <>

Dann im Body wieder 3 Punkte und da komm rein:
{
"parcel": {
"name": "{{Vorgang.Stammdaten.Kunde.Adresse.Vorname}} {{Vorgang.Stammdaten.Kunde.Adresse.Nachname}}",
"company_name": "{{Vorgang.Stammdaten.Kunde.Firma}}",
"address": "{{ Vorgang.Stammdaten.Kunde.Adresse.Straße }}",
"city": "{{ Vorgang.Stammdaten.Kunde.Adresse.Ort }}",
"postal_code": "{{ Vorgang.Stammdaten.Kunde.Adresse.PLZ }}",
"telephone": "{{ Vorgang.Stammdaten.Kunde.Adresse.Telefon }}",
"request_label": false,
"email": "{{ Vorgang.Stammdaten.Kunde.Adresse.EMail }}",
"data": {},
"country": "{{ Vorgang.Stammdaten.Kunde.Adresse.ISO }}",
"shipment": {
"id": 8
},
"weight": "1.000",
"order_number": "{{ Vorgang.Stammdaten.Auftragsnummer }}",
"insured_value": 0,
"total_order_value_currency": "EUR",
"total_order_value": "{{ Vorgang.AuftragsPositionen.BruttopreisGesamt | FormatNumber: 'N2', 'en-US'}}",
"quantity": 1,
"shipping_method_checkout_name": "{{ Vorgang.Lieferung.Versandart.Name }}"
}
}

Was genau die Shipment ID ist, habe ich noch nicht herausgefunden. Werde ich ggfs noch hier ergänzen.


Haken setzen bei "Auf Antwort warten"

Jo. So sollte es dann grundsätzlich funktionieren. Verfeinerungen folgen, sobald ich herausgefunden habe, ob es ein Workflowereignis gibt, wenn in WMS das Paket fertig gepackt ist.

Aber so bekomme ich grundsätzlich schon einmal die Kundendaten in Sendcloud rein, brauche eigentlich nur das Gewicht prüfen und Label erstellen.

VG
Julian
 
  • Gefällt mir
Reaktionen: topsi und IT-WEFA

Ähnliche Themen