Sample code for 30+ languages & platforms
Tcl

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 Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

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

set http [new_CkHttp]

# 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

set json [new_CkJsonObject]

CkJsonObject_UpdateString $json "includes.currency[0]" "id"
CkJsonObject_UpdateString $json "includes.currency[1]" "factor"
CkJsonObject_UpdateString $json "includes.currency[2]" "shortName"
CkJsonObject_UpdateString $json "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.
CkHttp_SetRequestHeader $http "sw-access-key" "<sales-channel-api-access-key>"

set resp [new_CkHttpResponse]

set success [CkHttp_HttpJson $http "POST" "https://my-shopware-6-shop.de/store-api/v3/currency" $json "application/json" $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkJsonObject $json
    delete_CkHttpResponse $resp
    exit
}

set sbResponseBody [new_CkStringBuilder]

CkHttpResponse_GetBodySb $resp $sbResponseBody

puts [CkStringBuilder_getAsString $sbResponseBody]

# If we get a 401 response, it may be that our access token expired and we need to fetch a new one.
set respStatusCode [CkHttpResponse_get_StatusCode $resp]
puts "Response Status Code = $respStatusCode"
if {$respStatusCode >= 400} then {
    puts "Response Header:"
    puts [CkHttpResponse_header $resp]
    puts "Failed."
    delete_CkHttp $http
    delete_CkJsonObject $json
    delete_CkHttpResponse $resp
    delete_CkStringBuilder $sbResponseBody
    exit
}

# 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

CkStringBuilder_Trim $sbResponseBody
if {[CkStringBuilder_StartsWith $sbResponseBody "[" 0] == 1} then {
    # This is an array.
    set jRespArr [new_CkJsonArray]

    CkJsonArray_LoadSb $jRespArr $sbResponseBody

    # jCurrency is a CkJsonObject

    set i 0
    set count_i [CkJsonArray_get_Size $jRespArr]
    while {$i < $count_i} {
        set jCurrency [CkJsonArray_ObjectAt $jRespArr $i]
        set factor [CkJsonObject_stringOf $jCurrency "factor"]
        set shortName [CkJsonObject_stringOf $jCurrency "shortName"]
        set name [CkJsonObject_stringOf $jCurrency "name"]
        set id [CkJsonObject_stringOf $jCurrency "id"]
        set apiAlias [CkJsonObject_stringOf $jCurrency "apiAlias"]
        delete_CkJsonObject $jCurrency

        set i [expr $i + 1]
    }

} else {
    # This is a single currency.
    set jResp [new_CkJsonObject]

    CkJsonObject_LoadSb $jResp $sbResponseBody
    CkJsonObject_put_EmitCompact $jResp 0

    puts "Response Body:"
    puts [CkJsonObject_emit $jResp]

    set factor [CkJsonObject_stringOf $jResp "factor"]
    set shortName [CkJsonObject_stringOf $jResp "shortName"]
    set name [CkJsonObject_stringOf $jResp "name"]
    set id [CkJsonObject_stringOf $jResp "id"]
    set apiAlias [CkJsonObject_stringOf $jResp "apiAlias"]
}


delete_CkHttp $http
delete_CkJsonObject $json
delete_CkHttpResponse $resp
delete_CkStringBuilder $sbResponseBody
delete_CkJsonArray $jRespArr
delete_CkJsonObject $jResp