Sample code for 30+ languages & platforms
Visual FoxPro

Shopware 6 - Rename Category

See more Shopware 6 Examples

Changes the name of an existing category.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loHttp
LOCAL loJsonToken
LOCAL lcCategoryId
LOCAL loSbUrl
LOCAL loJson
LOCAL lcUrl
LOCAL loResp
LOCAL loSbResponseBody
LOCAL loJResp
LOCAL lnRespStatusCode

lnSuccess = 0

* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loHttp = CreateObject('Chilkat.Http')

* You'll need to know the category's id to update the name.
* See Find Shopware Category by Name for example code.

* Load the access token previously obtained in Shopware 6 OAuth2 Client Credentials
loJsonToken = CreateObject('Chilkat.JsonObject')
loJsonToken.LoadFile("qa_data/tokens/shopware6.json")

* This causes the "Authorization: Bearer <access_token>" header to be added.
loHttp.AuthToken = loJsonToken.StringOf("access_token")

* Send a PATCH request where the category id is in the path and the new name is in the JSON body, like this:
* PATCH /api/v3/category/ab6e524bf224404cb4b675a76550b8cd
* {
*     "name": "new_category_name"
* }

lcCategoryId = "ab6e524bf224404cb4b675a76550b8cd"

loSbUrl = CreateObject('Chilkat.StringBuilder')
loSbUrl.Append("https://my-shopware-6-shop.de/api/v3/category/")
loSbUrl.Append(lcCategoryId)

* Rename the category to "TestABC"
loJson = CreateObject('Chilkat.JsonObject')
loJson.UpdateString("name","TestABC")

lcUrl = loSbUrl.GetAsString()
loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpJson("PATCH",lcUrl,loJson,"application/json",loResp)
IF (lnSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loJsonToken
    RELEASE loSbUrl
    RELEASE loJson
    RELEASE loResp
    CANCEL
ENDIF

loSbResponseBody = CreateObject('Chilkat.StringBuilder')
loResp.GetBodySb(loSbResponseBody)
loJResp = CreateObject('Chilkat.JsonObject')
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = 0

* A 204 response status code indicates success.
* The response body will be empty when successful.
? "Response Body:"
? loJResp.Emit()

* If we get a 401 response, it may be that our access token expired and we need to fetch a new one.
lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode >= 400) THEN
    ? "Response Header:"
    ? loResp.Header
    ? "Failed."
    RELEASE loHttp
    RELEASE loJsonToken
    RELEASE loSbUrl
    RELEASE loJson
    RELEASE loResp
    RELEASE loSbResponseBody
    RELEASE loJResp
    CANCEL
ENDIF

RELEASE loHttp
RELEASE loJsonToken
RELEASE loSbUrl
RELEASE loJson
RELEASE loResp
RELEASE loSbResponseBody
RELEASE loJResp