Sample code for 30+ languages & platforms
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

Lua
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