PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkJsonObject.pb"
IncludeFile "CkJsonArray.pb"
Procedure ChilkatExample()
success.i = 0
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; 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
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckUpdateString(json,"includes.currency[0]","id")
CkJsonObject::ckUpdateString(json,"includes.currency[1]","factor")
CkJsonObject::ckUpdateString(json,"includes.currency[2]","shortName")
CkJsonObject::ckUpdateString(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::ckSetRequestHeader(http,"sw-access-key","<sales-channel-api-access-key>")
resp.i = CkHttpResponse::ckCreate()
If resp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckHttpJson(http,"POST","https://my-shopware-6-shop.de/store-api/v3/currency",json,"application/json",resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(json)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
sbResponseBody.i = CkStringBuilder::ckCreate()
If sbResponseBody.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkHttpResponse::ckGetBodySb(resp,sbResponseBody)
Debug CkStringBuilder::ckGetAsString(sbResponseBody)
; If we get a 401 response, it may be that our access token expired and we need to fetch a new one.
respStatusCode.i = CkHttpResponse::ckStatusCode(resp)
Debug "Response Status Code = " + Str(respStatusCode)
If respStatusCode >= 400
Debug "Response Header:"
Debug CkHttpResponse::ckHeader(resp)
Debug "Failed."
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(json)
CkHttpResponse::ckDispose(resp)
CkStringBuilder::ckDispose(sbResponseBody)
ProcedureReturn
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
factor.s
shortName.s
name.s
id.s
apiAlias.s
CkStringBuilder::ckTrim(sbResponseBody)
If CkStringBuilder::ckStartsWith(sbResponseBody,"[",0) = 1
; This is an array.
jRespArr.i = CkJsonArray::ckCreate()
If jRespArr.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonArray::ckLoadSb(jRespArr,sbResponseBody)
jCurrency.i
i.i = 0
count_i.i = CkJsonArray::ckSize(jRespArr)
While i < count_i
jCurrency = CkJsonArray::ckObjectAt(jRespArr,i)
factor = CkJsonObject::ckStringOf(jCurrency,"factor")
shortName = CkJsonObject::ckStringOf(jCurrency,"shortName")
name = CkJsonObject::ckStringOf(jCurrency,"name")
id = CkJsonObject::ckStringOf(jCurrency,"id")
apiAlias = CkJsonObject::ckStringOf(jCurrency,"apiAlias")
CkJsonObject::ckDispose(jCurrency)
i = i + 1
Wend
Else
; This is a single currency.
jResp.i = CkJsonObject::ckCreate()
If jResp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckLoadSb(jResp,sbResponseBody)
CkJsonObject::setCkEmitCompact(jResp, 0)
Debug "Response Body:"
Debug CkJsonObject::ckEmit(jResp)
factor = CkJsonObject::ckStringOf(jResp,"factor")
shortName = CkJsonObject::ckStringOf(jResp,"shortName")
name = CkJsonObject::ckStringOf(jResp,"name")
id = CkJsonObject::ckStringOf(jResp,"id")
apiAlias = CkJsonObject::ckStringOf(jResp,"apiAlias")
EndIf
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(json)
CkHttpResponse::ckDispose(resp)
CkStringBuilder::ckDispose(sbResponseBody)
CkJsonArray::ckDispose(jRespArr)
CkJsonObject::ckDispose(jResp)
ProcedureReturn
EndProcedure