Lua
Lua
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 Lua Downloads
local chilkat = require("chilkat")
-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
local http = chilkat.Http.new()
-- 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
local json = chilkat.JsonObject.new()
json:update_string("includes.currency[0]", "id")
json:update_string("includes.currency[1]", "factor")
json:update_string("includes.currency[2]", "shortName")
json:update_string("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.
http:set_request_header("sw-access-key", "<sales-channel-api-access-key>")
local resp = chilkat.HttpResponse.new()
local success = http:http_json("POST", "https://my-shopware-6-shop.de/store-api/v3/currency", json, "application/json", resp)
if not success then
print(http.last_error_text)
return
end
local sbResponseBody = chilkat.StringBuilder.new()
resp:get_body_sb(sbResponseBody)
print(sbResponseBody:get_as_string())
-- If we get a 401 response, it may be that our access token expired and we need to fetch a new one.
local respStatusCode = resp.status_code
print("Response Status Code = " .. respStatusCode)
if respStatusCode >= 400 then
print("Response Header:")
print(resp.header)
print("Failed.")
return
end
-- 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
local factor = ""
local shortName = ""
local name = ""
local id = ""
local apiAlias = ""
sbResponseBody:trim()
if sbResponseBody:starts_with("[", false) then
-- This is an array.
local jRespArr = chilkat.JsonArray.new()
jRespArr:load_sb(sbResponseBody)
local jCurrency
local i = 0
local count_i = jRespArr.size
while i < count_i do
jCurrency = jRespArr:object_at(i)
factor = jCurrency:string_of("factor")
shortName = jCurrency:string_of("shortName")
name = jCurrency:string_of("name")
id = jCurrency:string_of("id")
apiAlias = jCurrency:string_of("apiAlias")
i = i + 1
end
else
-- This is a single currency.
local jResp = chilkat.JsonObject.new()
jResp:load_sb(sbResponseBody)
jResp.emit_compact = false
print("Response Body:")
print(jResp:emit())
factor = jResp:string_of("factor")
shortName = jResp:string_of("shortName")
name = jResp:string_of("name")
id = jResp:string_of("id")
apiAlias = jResp:string_of("apiAlias")
end