Bestellungen via API auslesen (für Import in WaWi)

Hallo zusammen,

ich möchte gerne die Bestellungen aus Shopware via REST-API auslesen und in unser WaWi importieren.

Bis jetzt bekomme ich nur die Bestellung ohne Artikel-Positionen, Liefer-/Rechnungsadresse usw. Der angefügte Body/Payload wird schlicht ignoriert. Hierbei habe ich verschiedene Versionen mit und ohne Arrays probiert. Anbei mein derzeitiger Stand in PowerShell 7:

  $headers = @{
    "Authorization" = "Bearer $token"
    "Accept"        = "application/json"
    "Content-Type"  = "application/json"
  }

  $body = [PSCustomObject]@{
    associations = @(
      [PSCustomObject]@{
        lineItems =
          [PSCustomObject]@{
            associations = 
              [PSCustomObject]@{
                product = @()
              }
          }
      }
    )
  } | ConvertTo-Json -Depth 10

  $ret = Invoke-WebRequest -Uri "$shopDomain/api/order/$id" `
    -Headers $headers `
    -Body $body

Hat jemand eine Idee was ich falsch mache?

Ich gehe davon aus, das die Kodierung im Body nicht richtig ist. Ein guter Weg, ist den Chrome Browser zu nutzen und dann im Backend die „Developer Tools“ einzuschalten. Letztlich müssten man hier dann „nur noch“ die Call entsprechend nachbauen.
Was immer [PSCustomObject] hier oben bedeutet, aber ich gehen davon aus, dass das Ganze letztlich falsch kodiert wird.
Ich würde hier in diesem Fall die API eher direkt mit C# (evtl. mit Standard- Bibliotheken wie RestSharp, NewtonSoft JSON, etc.) abbilden und das ganze dann evtl. mit Powershell final zu integrieren.

Bis dahin ist aber noch ein langer Weg. Ansonsten würde ich mich mal im Bereich „openapi“ umsehen. Zb. mit einer Google Suche nach „openapi powershell generator“.

herzlichst

CHA

gibt es einfache curl-Kommandozeilen Beispiele wie die API inkl. associations funktioniert? Dann könnte ich es anschließend leicht in PowerShell transformieren.

Falls jemand kurzfristig mir die curl-Befehle zu den wichtigsten API-Aufrufen schicken kann, so würde ich dies auch entsprechend vergüten. Einfach per PN schreiben

Wichtig: vollständige Bestellung, Lagerbestands-Import, VK-Preis-Import, Bestellstatus-Aktualisierung
Falls möglich: Export der Trackingnummern Richtung Shopware

1 „Gefällt mir“