Sample code for 30+ languages & platforms
Tcl

Shopify Get all products that belong to a certain collection

See more Shopify Examples

Get all products that belong to a certain collection

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

set rest [new_CkRest]

CkRest_SetAuthBasic $rest "SHOPIFY_PRIVATE_API_KEY" "SHOPIFY_PRIVATE_API_KEY"

set success [CkRest_Connect $rest "chilkat.myshopify.com" 443 1 1]
if {$success != 1} then {
    puts [CkRest_lastErrorText $rest]
    delete_CkRest $rest
    exit
}

set sbJson [new_CkStringBuilder]

set success [CkRest_FullRequestNoBodySb $rest "GET" "/admin/products.json?collection_id=841564295" $sbJson]
if {$success != 1} then {
    puts [CkRest_lastErrorText $rest]
    delete_CkRest $rest
    delete_CkStringBuilder $sbJson
    exit
}

if {[CkRest_get_ResponseStatusCode $rest] != 200} then {
    puts "Received error response code: [CkRest_get_ResponseStatusCode $rest]"
    puts "Response body:"
    puts [CkStringBuilder_getAsString $sbJson]
    delete_CkRest $rest
    delete_CkStringBuilder $sbJson
    exit
}

set json [new_CkJsonObject]

CkJsonObject_LoadSb $json $sbJson

# The following code parses the JSON response.
# A sample JSON response is shown below the sample code.

set i 0
set count_i [CkJsonObject_SizeOfArray $json "products"]
while {$i < $count_i} {
    CkJsonObject_put_I $json $i
    set id [CkJsonObject_IntOf $json "products[i].id"]
    set title [CkJsonObject_stringOf $json "products[i].title"]
    set body_html [CkJsonObject_stringOf $json "products[i].body_html"]
    set vendor [CkJsonObject_stringOf $json "products[i].vendor"]
    set product_type [CkJsonObject_stringOf $json "products[i].product_type"]
    set created_at [CkJsonObject_stringOf $json "products[i].created_at"]
    set handle [CkJsonObject_stringOf $json "products[i].handle"]
    set updated_at [CkJsonObject_stringOf $json "products[i].updated_at"]
    set published_at [CkJsonObject_stringOf $json "products[i].published_at"]
    set template_suffix [CkJsonObject_IsNullOf $json "products[i].template_suffix"]
    set published_scope [CkJsonObject_stringOf $json "products[i].published_scope"]
    set tags [CkJsonObject_stringOf $json "products[i].tags"]
    set imageId [CkJsonObject_IntOf $json "products[i].image.id"]
    set imageProduct_id [CkJsonObject_IntOf $json "products[i].image.product_id"]
    set imagePosition [CkJsonObject_IntOf $json "products[i].image.position"]
    set imageCreated_at [CkJsonObject_stringOf $json "products[i].image.created_at"]
    set imageUpdated_at [CkJsonObject_stringOf $json "products[i].image.updated_at"]
    set imageWidth [CkJsonObject_IntOf $json "products[i].image.width"]
    set imageHeight [CkJsonObject_IntOf $json "products[i].image.height"]
    set imageSrc [CkJsonObject_stringOf $json "products[i].image.src"]
    set j 0
    set count_j [CkJsonObject_SizeOfArray $json "products[i].variants"]
    while {$j < $count_j} {
        CkJsonObject_put_J $json $j
        set id [CkJsonObject_IntOf $json "products[i].variants[j].id"]
        set product_id [CkJsonObject_IntOf $json "products[i].variants[j].product_id"]
        set title [CkJsonObject_stringOf $json "products[i].variants[j].title"]
        set price [CkJsonObject_stringOf $json "products[i].variants[j].price"]
        set sku [CkJsonObject_stringOf $json "products[i].variants[j].sku"]
        set position [CkJsonObject_IntOf $json "products[i].variants[j].position"]
        set grams [CkJsonObject_IntOf $json "products[i].variants[j].grams"]
        set inventory_policy [CkJsonObject_stringOf $json "products[i].variants[j].inventory_policy"]
        set compare_at_price [CkJsonObject_IsNullOf $json "products[i].variants[j].compare_at_price"]
        set fulfillment_service [CkJsonObject_stringOf $json "products[i].variants[j].fulfillment_service"]
        set inventory_management [CkJsonObject_stringOf $json "products[i].variants[j].inventory_management"]
        set option1 [CkJsonObject_stringOf $json "products[i].variants[j].option1"]
        set option2 [CkJsonObject_IsNullOf $json "products[i].variants[j].option2"]
        set option3 [CkJsonObject_IsNullOf $json "products[i].variants[j].option3"]
        set created_at [CkJsonObject_stringOf $json "products[i].variants[j].created_at"]
        set updated_at [CkJsonObject_stringOf $json "products[i].variants[j].updated_at"]
        set taxable [CkJsonObject_BoolOf $json "products[i].variants[j].taxable"]
        set barcode [CkJsonObject_stringOf $json "products[i].variants[j].barcode"]
        set image_id [CkJsonObject_IntOf $json "products[i].variants[j].image_id"]
        set inventory_quantity [CkJsonObject_IntOf $json "products[i].variants[j].inventory_quantity"]
        set weight [CkJsonObject_IntOf $json "products[i].variants[j].weight"]
        set weight_unit [CkJsonObject_stringOf $json "products[i].variants[j].weight_unit"]
        set old_inventory_quantity [CkJsonObject_IntOf $json "products[i].variants[j].old_inventory_quantity"]
        set requires_shipping [CkJsonObject_BoolOf $json "products[i].variants[j].requires_shipping"]
        set j [expr $j + 1]
    }
    set j 0
    set count_j [CkJsonObject_SizeOfArray $json "products[i].options"]
    while {$j < $count_j} {
        CkJsonObject_put_J $json $j
        set id [CkJsonObject_IntOf $json "products[i].options[j].id"]
        set product_id [CkJsonObject_IntOf $json "products[i].options[j].product_id"]
        set name [CkJsonObject_stringOf $json "products[i].options[j].name"]
        set position [CkJsonObject_IntOf $json "products[i].options[j].position"]
        set k 0
        set count_k [CkJsonObject_SizeOfArray $json "products[i].options[j].values"]
        while {$k < $count_k} {
            CkJsonObject_put_K $json $k
            set strVal [CkJsonObject_stringOf $json "products[i].options[j].values[k]"]
            set k [expr $k + 1]
        }
        set j [expr $j + 1]
    }
    set j 0
    set count_j [CkJsonObject_SizeOfArray $json "products[i].images"]
    while {$j < $count_j} {
        CkJsonObject_put_J $json $j
        set id [CkJsonObject_IntOf $json "products[i].images[j].id"]
        set product_id [CkJsonObject_IntOf $json "products[i].images[j].product_id"]
        set position [CkJsonObject_IntOf $json "products[i].images[j].position"]
        set created_at [CkJsonObject_stringOf $json "products[i].images[j].created_at"]
        set updated_at [CkJsonObject_stringOf $json "products[i].images[j].updated_at"]
        set width [CkJsonObject_IntOf $json "products[i].images[j].width"]
        set height [CkJsonObject_IntOf $json "products[i].images[j].height"]
        set src [CkJsonObject_stringOf $json "products[i].images[j].src"]
        set k 0
        set count_k [CkJsonObject_SizeOfArray $json "products[i].images[j].variant_ids"]
        while {$k < $count_k} {
            CkJsonObject_put_K $json $k
            set intVal [CkJsonObject_IntOf $json "products[i].images[j].variant_ids[k]"]
            set k [expr $k + 1]
        }
        set j [expr $j + 1]
    }
    set j 0
    set count_j [CkJsonObject_SizeOfArray $json "products[i].image.variant_ids"]
    while {$j < $count_j} {
        CkJsonObject_put_J $json $j
        set j [expr $j + 1]
    }
    set i [expr $i + 1]
}

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

# {
#   "products": [
#     {
#       "id": 632910392,
#       "title": "IPod Nano - 8GB",
#       "body_html": "<p>It's the small iPod with one very big idea: Video. Now the world's most popular music player, available in 4GB and 8GB models, lets you enjoy TV shows, movies, video podcasts, and more. The larger, brighter display means amazing picture quality. In six eye-catching colors, iPod nano is stunning all around. And with models starting at just $149, little speaks volumes.<\/p>",
#       "vendor": "Apple",
#       "product_type": "Cult Products",
#       "created_at": "2017-09-22T14:08:02-04:00",
#       "handle": "ipod-nano",
#       "updated_at": "2017-09-22T14:08:02-04:00",
#       "published_at": "2007-12-31T19:00:00-05:00",
#       "template_suffix": null,
#       "published_scope": "web",
#       "tags": "Emotive, Flash Memory, MP3, Music",
#       "variants": [
#         {
#           "id": 808950810,
#           "product_id": 632910392,
#           "title": "Pink",
#           "price": "199.00",
#           "sku": "IPOD2008PINK",
#           "position": 1,
#           "grams": 567,
#           "inventory_policy": "continue",
#           "compare_at_price": null,
#           "fulfillment_service": "manual",
#           "inventory_management": "shopify",
#           "option1": "Pink",
#           "option2": null,
#           "option3": null,
#           "created_at": "2017-09-22T14:08:02-04:00",
#           "updated_at": "2017-09-22T14:08:02-04:00",
#           "taxable": true,
#           "barcode": "1234_pink",
#           "image_id": 562641783,
#           "inventory_quantity": 10,
#           "weight": 1.25,
#           "weight_unit": "lb",
#           "old_inventory_quantity": 10,
#           "requires_shipping": true
#         },
#         {
#           "id": 49148385,
#           "product_id": 632910392,
#           "title": "Red",
#           "price": "199.00",
#           "sku": "IPOD2008RED",
#           "position": 2,
#           "grams": 567,
#           "inventory_policy": "continue",
#           "compare_at_price": null,
#           "fulfillment_service": "manual",
#           "inventory_management": "shopify",
#           "option1": "Red",
#           "option2": null,
#           "option3": null,
#           "created_at": "2017-09-22T14:08:02-04:00",
#           "updated_at": "2017-09-22T14:08:02-04:00",
#           "taxable": true,
#           "barcode": "1234_red",
#           "image_id": null,
#           "inventory_quantity": 20,
#           "weight": 1.25,
#           "weight_unit": "lb",
#           "old_inventory_quantity": 20,
#           "requires_shipping": true
#         },
#         {
#           "id": 39072856,
#           "product_id": 632910392,
#           "title": "Green",
#           "price": "199.00",
#           "sku": "IPOD2008GREEN",
#           "position": 3,
#           "grams": 567,
#           "inventory_policy": "continue",
#           "compare_at_price": null,
#           "fulfillment_service": "manual",
#           "inventory_management": "shopify",
#           "option1": "Green",
#           "option2": null,
#           "option3": null,
#           "created_at": "2017-09-22T14:08:02-04:00",
#           "updated_at": "2017-09-22T14:08:02-04:00",
#           "taxable": true,
#           "barcode": "1234_green",
#           "image_id": null,
#           "inventory_quantity": 30,
#           "weight": 1.25,
#           "weight_unit": "lb",
#           "old_inventory_quantity": 30,
#           "requires_shipping": true
#         },
#         {
#           "id": 457924702,
#           "product_id": 632910392,
#           "title": "Black",
#           "price": "199.00",
#           "sku": "IPOD2008BLACK",
#           "position": 4,
#           "grams": 567,
#           "inventory_policy": "continue",
#           "compare_at_price": null,
#           "fulfillment_service": "manual",
#           "inventory_management": "shopify",
#           "option1": "Black",
#           "option2": null,
#           "option3": null,
#           "created_at": "2017-09-22T14:08:02-04:00",
#           "updated_at": "2017-09-22T14:08:02-04:00",
#           "taxable": true,
#           "barcode": "1234_black",
#           "image_id": null,
#           "inventory_quantity": 40,
#           "weight": 1.25,
#           "weight_unit": "lb",
#           "old_inventory_quantity": 40,
#           "requires_shipping": true
#         }
#       ],
#       "options": [
#         {
#           "id": 594680422,
#           "product_id": 632910392,
#           "name": "Color",
#           "position": 1,
#           "values": [
#             "Pink",
#             "Red",
#             "Green",
#             "Black"
#           ]
#         }
#       ],
#       "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
#           ]
#         }
#       ],
#       "image": {
#         "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": [
#         ]
#       }
#     }
#   ]
# }

puts "Example Completed."

delete_CkRest $rest
delete_CkStringBuilder $sbJson
delete_CkJsonObject $json