Sample code for 30+ languages & platforms
Xbase++

Shopware 6 -List Currencies

See more Shopware 6 Examples

With store-api.currency you can fetch all currencies that are available in this Sales Channel.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oHttp
LOCAL oJson
LOCAL oResp
LOCAL oSbResponseBody
LOCAL nRespStatusCode
LOCAL cFactor
LOCAL cShortName
LOCAL cName
LOCAL cId
LOCAL cApiAlias
LOCAL oJRespArr
LOCAL oJCurrency
LOCAL i
LOCAL nCount_i
LOCAL oJResp

nSuccess := 0

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

oHttp := CreateObject("Chilkat.Http")

//  Sends the following POST

//  POST /store-api/v3/currency
//  {
//      "includes": {
//          "currency": [
//              "id",
//              "factor",
//              "shortName",
//              "name"
//          ]
//      }
//  }

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

oJson := CreateObject("Chilkat.JsonObject")
oJson:UpdateString("includes.currency[0]", "id")
oJson:UpdateString("includes.currency[1]", "factor")
oJson:UpdateString("includes.currency[2]", "shortName")
oJson:UpdateString("includes.currency[3]", "name")

//  This request simply authenticates with the sw-access-key you can interactively copy from your 
//  sales channel in the Shopware 6 administration web portal.
//  We do NOT use OAuth2 for Store API requests.
oHttp:SetRequestHeader("sw-access-key", "<sales-channel-api-access-key>")

oResp := CreateObject("Chilkat.HttpResponse")
nSuccess := oHttp:HttpJson("POST", "https://my-shopware-6-shop.de/store-api/v3/currency", oJson, "application/json", oResp)
IF (nSuccess == 0)
    ? oHttp:LastErrorText
    oHttp:destroy()
    oJson:destroy()
    oResp:destroy()
    RETURN
ENDIF

oSbResponseBody := CreateObject("Chilkat.StringBuilder")
oResp:GetBodySb(oSbResponseBody)

? oSbResponseBody:GetAsString()

//  If we get a 401 response, it may be that our access token expired and we need to fetch a new one.
nRespStatusCode := oResp:StatusCode
? "Response Status Code = " + Str(nRespStatusCode)
IF (nRespStatusCode >= 400)
    ? "Response Header:"
    ? oResp:Header
    ? "Failed."
    oHttp:destroy()
    oJson:destroy()
    oResp:destroy()
    oSbResponseBody:destroy()
    RETURN
ENDIF

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

//  A single object can be returned.

//  {
//    "factor": 1,
//    "shortName": "EUR",
//    "name": "Euro",
//    "id": "b7d2554b0ce847cd82f3ac9bd1c0dfca",
//    "apiAlias": "currency"
//  }

//  or an array of currency objects can be returned:

//  [
//      {
//          "factor": 0.89157,
//          "shortName": "GBP",
//          "name": "Pound",
//          "id": "01913e4cbe604f45be84cbabd5966239",
//          "apiAlias": "currency"
//      },
//      {
//          "factor": 10.51,
//          "shortName": "SEK",
//          "name": "Swedish krone",
//          "id": "3dfbaa78994b4f1cac491f1a992646fd",
//          "apiAlias": "currency"
//      }
//  ]

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

oSbResponseBody:Trim()
IF (oSbResponseBody:StartsWith("[", 0) == 1)
    //  This is an array.
    oJRespArr := CreateObject("Chilkat.JsonArray")

    oJRespArr:LoadSb(oSbResponseBody)

    i := 0
    nCount_i := oJRespArr:Size
    DO WHILE i < nCount_i
        oJCurrency := oJRespArr:ObjectAt(i)
        cFactor := oJCurrency:StringOf("factor")
        cShortName := oJCurrency:StringOf("shortName")
        cName := oJCurrency:StringOf("name")
        cId := oJCurrency:StringOf("id")
        cApiAlias := oJCurrency:StringOf("apiAlias")
        oJCurrency:destroy()
        i := i + 1
    ENDDO

ELSE
    //  This is a single currency.
    oJResp := CreateObject("Chilkat.JsonObject")

    oJResp:LoadSb(oSbResponseBody)
    oJResp:EmitCompact := 0

    ? "Response Body:"
    ? oJResp:Emit()

    cFactor := oJResp:StringOf("factor")
    cShortName := oJResp:StringOf("shortName")
    cName := oJResp:StringOf("name")
    cId := oJResp:StringOf("id")
    cApiAlias := oJResp:StringOf("apiAlias")
ENDIF

oHttp:destroy()
oJson:destroy()
oResp:destroy()
oSbResponseBody:destroy()
oJRespArr:destroy()
oJResp:destroy()