Trackingnummer per Rest API an Shopware übertragen

Hallo,

ich möchte gerne die Trackingnummer an Shopware per Rest API senden. Dazu habe ich versucht, den Browser nachzubauen.

Leider habe ich nicht herausgefunden, wie ich die sw-version-id bekomme, um den JSON String entsprechend korrekt zu übergeben.

Folgende Vorgehensweise führe ich durch:

  1. Anforderungs-URL:
    https://URL/api/order/orderId

  2. Anforderungsmethode:
    PATCH

Dann muss ich folgendes Json übergeben.

{
„id“: „f879ae42a3894907b36c4ebb56bb59d8“,
„versionId“: „ad1731cfa8c24276923aa5bab696e7ed“,
„deliveries“: [
{
„id“: „5eb8f8085fc0499b9c86a8f74caa0484“,
„versionId“: „ad1731cfa8c24276923aa5bab696e7ed“,
„trackingCodes“: [
„12345“
]
}
]
}

Jetzt ist die Frage, wo finde ich die versionId? Die versionId ist bei mir im System immer gleich und die entsprechende versionId finde ich nicht bei der Abfrage der api/order/orderId . Kann mir jemand vielleicht sagen, wie ich diese anfordern kann?

Ohne das kann ich keine Trackingnummer übertragen. Ich habe auch nichts dazu in der Dokumentation gefunden.

Gruß
Andreas

Die versionId benötigst Du nicht bei der Übergabe.

Die versionId benötigst Du nicht bei der Übergabe.

Vielen Dank für deine Antwort.
Ich habe jetzt mal folgendes JsonFile übergeben.
Beispiel:
orderId = 0e64ac5eecc84bac9937049e01411ac9

PATCH https://domain/api/order/f879ae42a3894907b36c4ebb56bb59d8

{
    "id": "f879ae42a3894907b36c4ebb56bb59d8",
    "deliveries": [
        {
            "id": "d86d95d82ca54370919ff793b4dc1e25",
            "trackingCodes": [
                "124"
            ]
        }
    ]
}

Folgende Antwort bekomme ich zurück:
Bad Request

Damit kann ich leider nichts anfangen. Muss ich den Json noch überarbeiten, bei dem Browser sind noch die lineItems aufgeführt, muss ich die mitübergeben oder gibt es noch einen anderen Grund?

Versuche es mal dieser Version auf PATCH https://domain/api/order/f879ae42a3894907b36c4ebb56bb59d8

{
    "deliveries": [
        {
            "id": "d86d95d82ca54370919ff793b4dc1e25",
            "trackingCodes": [
                "124"
            ]
        }
    ]
}

Leider gleicher Fehler, aber danke für deine Hilfe.

Was ist denn Deine orderId?
Die muss in den Patch-Request. Die id ist die aus dem delivery-Datensatz. Überprüfe diese id, Bad request ist oft ein Indiz für fehlerhafte ids

id": "5eb8f8085fc0499b9c86a8f74caa0484",
        "customFields": null,
        "orderVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425",
        "shippingOrderAddressVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425",
        "apiAlias": "order_delivery"

https://domain/api/order/5eb8f8085fc0499b9c86a8f74caa0484

Ich habe die orderId bisher genommen, also die id, die die Bestellung kennzeichnet. Wenn ich jetzt allerdings die id aus dem der order_delivery Abfrage nehme, bekomme ich einen anderen Fehler. Die ist aber auch nicht, wie es der Browser durchführt, der nimmt für den Patch die orderId

Wenn ich jetzt die id von der delivery nehme, kommt dieser Fehler

{StatusCode: 500, ReasonPhrase: 'Internal Server Error', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
  Access-Control-Allow-Origin: *
  Access-Control-Allow-Methods: GET,POST,PUT,PATCH,DELETE
  Access-Control-Allow-Headers: Content-Type,Authorization,sw-context-token,sw-access-key,sw-language-id,sw-version-id,sw-inheritance,fail-on-error,indexing-behavior,single-operation,sw-include-seo-urls
  Access-Control-Expose-Headers: Content-Type,Authorization,sw-context-token,sw-access-key,sw-language-id,sw-version-id,sw-inheritance,fail-on-error,indexing-behavior,single-operation,sw-include-seo-urls
  x-frame-options: allowall
  Vary: Authorization
  Upgrade: h2
  Connection: Upgrade
  Connection: close
  Transfer-Encoding: chunked
  Cache-Control: private
  Date: Sat, 23 Oct 2021 17:35:39 GMT
  Server: Apache
  Content-Type: application/json
}}

Check die ids mal. Daran wird es liegen.

1 „Gefällt mir“

Du hattest recht. Es war eine falsche ID hinterlegt.

Ich möchte daher noch mal die korrekte Antwort posten, wie es richtig geht für die, die vielleicht ähnliche Probleme haben.

Anfrage:
PATCH https://musterdomain.de/api/order/62d3c54602354b63966a3275b1f4b188

{
    "id": "62d3c54602354b63966a3275b1f4b188", //orderId
    "deliveries": [
        {
            "id": "2e5c43fa33cb49c6a052cf3bb7794aef",  // deliveryId (da war mein Fehler, hier hatte ich eine UUID generiert
            "trackingCodes": [
                "1234567",
                "12345678"
            ]
        }
    ]
}
3 „Gefällt mir“