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