Sample code for 30+ languages & platforms
Visual FoxPro

Shopware Create a New Product

See more Shopware Examples

Create a new product in Shopware.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loHttp
LOCAL loJson
LOCAL loResp
LOCAL loSbResponseBody
LOCAL loJResp
LOCAL lnRespStatusCode
LOCAL lnDataId
LOCAL lcDataLocation

lnSuccess = 0

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

loHttp = CreateObject('Chilkat.Http')

loHttp.Login = "api_username"
loHttp.Password = "api_key"
loHttp.BasicAuth = 1

*  Use this online tool to generate code from sample JSON:
*  Generate Code to Create JSON

*  The following JSON is sent in the request body.

*  {
*    "name": "Sport Shoes",
*    "active": true,
*    "tax": 19,
*    "supplier": "Sport Shoes Inc.",
*    "categories": [
*      {
*        "id": 384
*      }
*    ],
*    "mainDetail": {
*      "number": "turn",
*      "active": true,
*      "prices": [
*        {
*          "customerGroupKey": "EK",
*          "price": 999
*        }
*      ]
*    }
*  }

loJson = CreateObject('Chilkat.JsonObject')
loJson.UpdateString("name","Sport Shoes")
loJson.UpdateBool("active",1)
loJson.UpdateInt("tax",19)
loJson.UpdateString("supplier","Sport Shoes Inc.")
loJson.UpdateInt("categories[0].id",384)
loJson.UpdateString("mainDetail.number","turn")
loJson.UpdateBool("mainDetail.active",1)
loJson.UpdateString("mainDetail.prices[0].customerGroupKey","EK")
loJson.UpdateInt("mainDetail.prices[0].price",999)

loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpJson("POST","https://my-shopware-shop.com/api/articles",loJson,"application/json",loResp)
IF (lnSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loJson
    RELEASE loResp
    CANCEL
ENDIF

loSbResponseBody = CreateObject('Chilkat.StringBuilder')
loResp.GetBodySb(loSbResponseBody)

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

? "Response Body:"
? loJResp.Emit()

*  A 201 response code indicates success.
lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode >= 400) THEN
    ? "Response Header:"
    ? loResp.Header
    ? "Failed."
    RELEASE loHttp
    RELEASE loJson
    RELEASE loResp
    RELEASE loSbResponseBody
    RELEASE loJResp
    CANCEL
ENDIF

*  Sample JSON response:
*  (Sample code for parsing the JSON response is shown below)

*  {
*    "success": true,
*    "data": {
*      "id": 8312,
*      "location": "https:\/\/my-shopware-shop.com\/api\/articles\/8312"
*    }
*  }

*  Sample code for parsing the JSON response...
*  Use the following online tool to generate parsing code from sample JSON:
*  Generate Parsing Code from JSON

lnSuccess = loJResp.BoolOf("success")
lnDataId = loJResp.IntOf("data.id")
lcDataLocation = loJResp.StringOf("data.location")

RELEASE loHttp
RELEASE loJson
RELEASE loResp
RELEASE loSbResponseBody
RELEASE loJResp