Sample code for 30+ languages & platforms
Lua

Shopify Get all products, showing only some attributes

See more Shopify Examples

Get all products, showing only some attributes

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

local rest = chilkat.Rest.new()

rest:set_auth_basic("SHOPIFY_PRIVATE_API_KEY", "SHOPIFY_PRIVATE_API_KEY")

local success = rest:connect("chilkat.myshopify.com", 443, true, true)
if not success then
    print(rest.last_error_text)
    return
end

local sbJson = chilkat.StringBuilder.new()
success = rest:full_request_no_body_sb("GET", "/admin/products.json?fields=id,images,title", sbJson)
if not success then
    print(rest.last_error_text)
    return
end

if rest.response_status_code ~= 200 then
    print("Received error response code: " .. rest.response_status_code)
    print("Response body:")
    print(sbJson:get_as_string())
    return
end

local json = chilkat.JsonObject.new()
json:load_sb(sbJson)

-- The following code parses the JSON response.
-- A sample JSON response is shown below the sample code.
local id = 0
local title = ""
local j = 0
local count_j = 0
local product_id = 0
local position = 0
local created_at = ""
local updated_at = ""
local width = 0
local height = 0
local src = ""
local k = 0
local count_k = 0
local intVal = 0

local i = 0
local count_i = json:size_of_array("products")
while i < count_i do
    json.i = i
    id = json:int_of("products[i].id")
    title = json:string_of("products[i].title")
    j = 0
    count_j = json:size_of_array("products[i].images")
    while j < count_j do
        json.j = j
        id = json:int_of("products[i].images[j].id")
        product_id = json:int_of("products[i].images[j].product_id")
        position = json:int_of("products[i].images[j].position")
        created_at = json:string_of("products[i].images[j].created_at")
        updated_at = json:string_of("products[i].images[j].updated_at")
        width = json:int_of("products[i].images[j].width")
        height = json:int_of("products[i].images[j].height")
        src = json:string_of("products[i].images[j].src")
        k = 0
        count_k = json:size_of_array("products[i].images[j].variant_ids")
        while k < count_k do
            json.k = k
            intVal = json:int_of("products[i].images[j].variant_ids[k]")
            k = k + 1
        end

        j = j + 1
    end

    i = i + 1
end

-- A sample JSON response body that is parsed by the above code:

-- {
--   "products": [
--     {
--       "id": 632910392,
--       "title": "IPod Nano - 8GB",
--       "images": [
--         {
--           "id": 850703190,
--           "product_id": 632910392,
--           "position": 1,
--           "created_at": "2017-09-22T14:08:02-04:00",
--           "updated_at": "2017-09-22T14:08:02-04:00",
--           "width": 123,
--           "height": 456,
--           "src": "https:\/\/cdn.shopify.com\/s\/files\/1\/0006\/9093\/3842\/products\/ipod-nano.png?v=1506103682",
--           "variant_ids": [
--           ]
--         },
--         {
--           "id": 562641783,
--           "product_id": 632910392,
--           "position": 2,
--           "created_at": "2017-09-22T14:08:02-04:00",
--           "updated_at": "2017-09-22T14:08:02-04:00",
--           "width": 123,
--           "height": 456,
--           "src": "https:\/\/cdn.shopify.com\/s\/files\/1\/0006\/9093\/3842\/products\/ipod-nano-2.png?v=1506103682",
--           "variant_ids": [
--             808950810
--           ]
--         }
--       ]
--     },
--     {
--       "id": 921728736,
--       "title": "IPod Touch 8GB",
--       "images": [
--       ]
--     }
--   ]
-- }

print("Example Completed.")