Hallo Forum,
ich möchte testweise eine Artikel Beschreibung updaten. Das Update erscheint jedoch nicht. Im wesentlichen hole ich den Artikel per Get und benutze den gleichen JSON String leicht verändert für das PUT. Der Rückgabewert nach dem PUT sagt OK, Exceptions werden nicht geworfen. Beim Put habe ich es sowohl über die ID als auch über die ordernumber versucht. Was mache ich falsch?
' C#
Try
' 1. Retrieve the Article Data:
Dim RestReq = New RestRequest("articles/{ordernumber}?useNumberAsId=true", Method.[GET])
RestReq.AddUrlSegment("ordernumber", OrderNumber.ToString(CultureInfo.InvariantCulture))
RestReq.AddHeader("Content-Type", "application/json; charset=utf-8")
Dim RestResp = _RestClient.Execute(RestReq)
If RestResp.ErrorException Is Nothing Then
' 2. Parse the Data and write something in the description field:
Dim ParsedResponse As Linq.JObject = Linq.JObject.Parse(RestResp.Content)
Dim ID As String = ParsedResponse.Item("data").Item("id")
Dim Description As Linq.JValue = ParsedResponse.Item("data").Item("descriptionLong")
Description.Value = "<p>aaaa " + Description.Value.ToString().Substring(4)
' 3. Now write the updated Data back:
Dim RestReq2 = New RestRequest("articles/{id}", Method.PUT)
RestReq2.AddUrlSegment("id", "135".ToString(CultureInfo.InvariantCulture))
RestReq2.AddHeader("Content-Type", "application/json; charset=utf-8")
RestReq2.RequestFormat = DataFormat.Json
RestReq2.AddJsonBody(q)
Dim RestResp2 = _RestClient.Execute(RestReq2)
End If
Catch ex As ArgumentException
Dim ex As String = ex.ToString()
End Try
Die Antwort beim PUT: {"success":true,"data":{"id":135,"location":"http:\/\/192.168.0.111:81\/api\/articles\/135"}}
Ich kann direkt in die mySQL DB in die s_articles Tabelle schauen. Der Artikel mit der id = 135 hat noch immer den alten Wert in description_long.
Ich arbeite auf einer frischen Shopware Installation 5.2.7 die ich vor 2 Woche installiert und mit den Testdaten Shop gefüllt habe.
Vielen Dank
Kin