Hallo, ich möchte mir ersparen bei Klarna-Bestellungen Jedes Mal ins Backend zu gehen und per Statusänderung den Status auf Versendet zu stellen. Mit dieser Aktion wird Klarna mitgeteilt, dass die Ware versendet wurde, was Voraussetzung dazu ist, dass der Rechnungsbetrag auch an uns ausbezahlt wird. Ein reines Beschreiben der Datenbank hilft hier nicht, da der Übermittlungsprozess an Klarna "angestoßen" werden muss. Habe mich schon etwas in die API Methodik von Gambio eingelesen, API Calls nutzen wir auch für Ebay und Amazon, dass Ganze ist uns also nicht ganz fremd. Gibt es in Gambio überhaupt eine API Funktion für diesen Zweck oder gibt es eine Alternative? Viele Grüße - Richard
Gibt es. Ich habe leider hier am Notebook nicht alle Infos dazu, aber hier die Dokumentation dazu: https://developers.gambio.de/docs/4...gx3-api/reference/orders/update-order-status/ Du schickst also den CURL Befehl an die entsprechende Order, die Status ID für "versendet" hab ich auch nicht zur Hand, kannst Du aber auslesen mit: https://developers.gambio.de/docs/4.../reference/order-statuses/get-order-statuses/ Morgen kann ich evtl. mehr dazu schreiben (wenn ich dran denke...). Über welche Software schickst Du die API Befehle?
Ich weiss nicht ob Du es noch brauchst, aber das sind bei mir die vorinstallierten Order-Stat..i?usse? (was ist da noch mal die Mehrzahl?): Code: [ { "id": 0, "names": { "EN": "Not validated", "DE": "Nicht best\u00e4tigt" }, "color": "e0412c" }, { "id": 1, "names": { "EN": "Pending", "DE": "Offen" }, "color": "f5ae49" }, { "id": 2, "names": { "EN": "Processing", "DE": "In Bearbeitung" }, "color": "0c7fda" }, { "id": 3, "names": { "EN": "Dispatched", "DE": "Versendet" }, "color": "45a845" }, { "id": 99, "names": { "EN": "Canceled", "DE": "Storniert" }, "color": "e0412c" }, { "id": 149, "names": { "EN": "Invoice created", "DE": "Rechnung erstellt" }, "color": "45a845" }, { "id": 150, "names": { "EN": "unknown", "DE": "unbekannt" }, "color": "897b65" }, { "id": 151, "names": { "EN": "pending", "DE": "ausstehend" }, "color": "897b65" }, { "id": 152, "names": { "EN": "completed", "DE": "abgeschlossen" }, "color": "897b65" }, { "id": 153, "names": { "EN": "partially_refunded", "DE": "teilerstattet" }, "color": "897b65" }, { "id": 154, "names": { "EN": "refunded", "DE": "erstattet" }, "color": "897b65" }, { "id": 155, "names": { "EN": "denied", "DE": "abgelehnt" }, "color": "897b65" } ]
Vielen Dank für die Antwort! Den Bestellstatus kann ich programmatisch schon ändern. Ich will das ganze mal durchspielen. Ich habe für eine Bestellung auf "Status ändern" geklickt. Daraufhin öffnet sich das obige Menü. Den neuen Bestellstatus habe ich auf "Versendet" geändert. Und "Klarna benachrichtigen" habe ich angehakt. Wenn ich jetzt auf den Button "Ausführen" klicke, dann geschieht meines Verständnis nach folgendes: 1. In der Datenbank-Tabelle "orders" wird das "orders-status" Feld der ausgewählten Bestellung auf 3 geupdated. 2. An Klarna wird eine Nachricht übermittelt, dass der Status der Bestellung jetzt "Versendet" ist. MIt 1. habe ich keine Probleme. Ich kann die Tabellen der Datenbank beliebig updaten. Mein Problem ist 2. Ich habe leider keine Ahnung wie ich über die api (oder auch mit einer PHP-Datei) eine Nachricht mit dem neuen Bestellstatus übermitteln kann. Der Punkt ist, ich will den Klick auf Ausführen nicht händisch machen, sondern programmatisch simulieren. Mit freundlichen Grüßen Robin Schwab
@Richard_24 Wenn du das über die REST-API machst, dann brauchst du weder den 1. noch den 2. Schritt machen, sondern nur ein Request an den Endpunkt (Link nur für registrierte Nutzer sichtbar.) Der Shop macht dann genau das was du auch in der Datenbank machts und sendet auch automatisch den Status an Klarna. Zudem muss im Klarna-Modul die Funktion "Automatische Statusaktualisierung" (ERP-Integration) an sein, damit dies möglich ist.
Auch dir vielen Dank für die Antwort! die Funktion im Klarna-Modul "Automatische Statusaktualisierung" ist aktiv. Ich habe jetzt einmal folgenden Code für eine Klarna-Bestellung ausprobiert: <?php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://www.schilderhimmel.de/api.php/v2/orders/401137/status", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "PATCH", CURLOPT_POSTFIELDS => "{\"id\":401137,\"statusId\":3,\"dateAdded\":\"2020-01-01 12:12:12\",\"comment\":\"test\",\"customerNotified\":false}", CURLOPT_HTTPHEADER => array( "authorization: Basic meinToken", "content-type: application/json" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } Damit habe ich den Order Status der Bestellung erfolgreich ändern können. Die Datenbank wurde geupdatet und auch im Gambio-Backend wird die Bestellung als versendet angezeigt. Nur bei Klarna wurde die Anzahl der erfassten Bestellungen nicht geupdatet. Am 16. April hatten wir vier Klarna-Bestellungen. Den Bestellstatus von zwei dieser Bestellungen haben wir damit geupdatet. Diese beiden Bestellungen sind auch bei Klarna erfasst. Die Bestellung, die ich mit der API geupdatet habe, ist leider nicht erfasst wurden. Es müssten drei erfasste Bestellungen sein, sind aber nur zwei (die händisch gemachten). Ich habe eine Idee bezüglich des Problems. Der momentane API-Code macht das selbe wie das händische Updaten des Bestellstatus außer, dass Klarna nicht benachrichtigt wird. Im API-Code wird an einer Stelle angegeben, dass der Kunde nicht benachrichtigt werde soll: customerNotified\":false Ich denke es müsste auch einen solchen Befehl für Klarna geben, den ich auf true setzten kann. So was wie. KlarnaNotified:true Mit freundlichen Grüßen Robin Schwab
Nein, wenn im Klarna Modul der Haken für den ERP Modus an ist passiert das normal unabänderbar immer bei Status Änderungen per API in die relevanten Status.
Hmmm, weiss vielleicht noch jemand Rat, weshalb das nicht geht ? Oder eine andere Möglichkeit? Viele Grüße - Richard