Bestelldetails/Bestellpositionen/Orderdetails Aktualisieren (Status der Bestellposition)

Hallo Forum!

Da ich über die Suche hier und bei Google leider nicht fündig geworden bin versuche ich es einmal hier im Forum ob es eine klare Antwort dazu gibt.

Ich möchte per REST API den Status einer Bestellposition aktualisieren.

Ich bekomme von der orderResource zwar ein OK zurück, nur es wird nichts aktualisiert.

Ich verwende die REST API auch zum abgleichen der Bestellungen und Artikeldaten mit einer Warenwirtschaft. das funktioniert auch ganz gut. Ich finde nur keinen weg über die API den Status einer Bestellposition zu ändern. Hintergund wofür das gebraucht wird ist der, das durch das setzen des Status bei einer Bestellposition ja dann nur für diese Position der Bestellung eine Gutschrift ausgelöst wird zum Beispiel.

Für die ganze Bestellung klappt das ohne Probleme, aber nicht für eine einzelne Position.

Daher die Frage geht das überhaupt über die API?

Ich habe im Forum einen Beitrag über orderDetailsAttributes gefunden. leider konnte ich das aber nicht so anpassen, das er die orderdetails aktualisieren würde.

JSON string sieht folgendermasen aus:

{
  „id“: 57,
  „details“: [
    {
      „id“: 81,
      „orderId“: „57“,
      „statusId“: 3
    }
  ]
}

hta jemand so etwas schon gemacht bzw. weiß ob das über die API möglich ist?

Hast Du hier schon geschaut? https://developers.shopware.com/developers-guide/rest-api/examples/order/#example-4-creating-an-order

Es gibt bei den Details das Feld „statusId“

Hi NextMike!

ja natürlich. das habe ich schon gesehen.

Leider geht es da aber nur um eine Anlage einer kompletten Bestellung.

das will ich gar nicht machen.

ich möchte nur den status einer Bestellposition ändern. das Feld heißt statusId (siehe JSON oben) . Aber leider passiert nichts, wenn man den request absetzt. Bzw schon. es kommt OK 200 zurück. keine Fehlermeldung oder ähnliches…

Aber es ändern sich keine Daten. es bleibt alles gleich.

Ich befürchte fast, das man bei der Bestellposition den Status nicht ändern kann über die API…

die Version von Shopware ist übrigens 5.6.1

 

 

Hi Josma.

Hast du dazu weitere Infos herausgefunden? Ich versuche auch den Status von Positionen über die API zu setzen, was ja durchaus auch ein usecase ist, z.B. bei Teilstornierungen.

Evtl. hast du auch einen Workaround gefunden, würde mich auf jeden Fall interessieren.

statusId ist doch unter details. Betrifft es nicht die Position?

@ Mane:

Nein, es hat nicht funktioniert. sprich die Positionen konnten nicht über die Api aktualisiert werden.

Bzw habe ich bis dato keinen Weg gefunden.

Sprich ich konnte das nicht lösen so wie ich es wollte.

@NextMike:

Ich denke schon. nur die API macht damit nichts…

Hi,

wir hatten das selbe Problem bzw. haben es zum Teil noch.

Was bei uns funktioniert hat: Anstatt „statusId“ „status“ benutzen. Das ist aber auch die einzige Sache, die wir über die API angesprochen bekommen.

Wir haben nämlich zusätzlich noch das Problem, dass wir die attributes ansprechen müssten. Da hat keiner von euch Erfahrungen gemacht oder?

Grüße

 

2 „Gefällt mir“

Hi Daniel!

Danke für deine Info! Das ist das schöne am Shopware Forum (kenne auch XT Forum (anderes Shopsystem), da kriegt man meistens keine Antwort und wenn eher eine unnötige:-(  )

 

Zu deiner Frage. Habe mit Attributen gearbeitet. aber nur bei den Artikeln.

Da ist es so, das du einfach ein attribute ‚Object‘ im Json brauchst mit den dann dazugehörigen Namen der DB Felder, die du Update willst.

Das ganze aktualisiere ich dann einfach mit dem Update kommando für Artikel. Das hat bei mir ganz gut funktioniert.

Aber eben nur bei den Artikel. bei den Bestelldetails kann ich dir das leider nicht beantworten ob das dort auch so geht…

 

 

Nur der vollständigkeit halber…

das status Feld kann upgedatet werden wie von daniel_aq geschrieben. nur es muss eben status heißen.

da ich das gerade bracuhe wollte ich das nur anmerken. aktuell brauche ich nur das Statusfeld aktualisieren. es wird spannend, falls ich mal andere Felder aktualisieren muss. denn ich habe keinen Weg gefunden wie das gehen soll…

 

1 „Gefällt mir“