Sample code for 30+ languages & platforms
Tcl Requires Chilkat v11.0.0+

Shopify Query a variant for its inventory item ID

See more Shopify Examples

Query a product variant to find the ID of its inventory item.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

#  This example requires the Chilkat API to have been previously unlocked.
#  See Global Unlock Sample for sample code.

set http [new_CkHttp]

CkHttp_put_Login $http "SHOPIFY_PRIVATE_API_KEY"
CkHttp_put_Password $http "SHOPIFY_PRIVATE_API_KEY"

CkHttp_put_Accept $http "application/json"

set resp [new_CkHttpResponse]

set success [CkHttp_HttpNoBody $http "GET" "https://{shop}.myshopify.com/admin/api/2020-04/products/{product_id}/variants/{variant_id}.json" $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkHttpResponse $resp
    exit
}

puts "Response Status Code: [CkHttpResponse_get_StatusCode $resp]"

set jsonResponse [new_CkJsonObject]

CkJsonObject_Load $jsonResponse [CkHttpResponse_bodyStr $resp]
CkJsonObject_put_EmitCompact $jsonResponse 0
puts [CkJsonObject_emit $jsonResponse]

if {[CkHttpResponse_get_StatusCode $resp] != 200} then {
    puts "Failed."
    delete_CkHttp $http
    delete_CkHttpResponse $resp
    delete_CkJsonObject $jsonResponse
    exit
}

#  Sample output...
#  (See the parsing code below..)
#  
#  Use the this online tool to generate parsing code from sample JSON: 
#  Generate Parsing Code from JSON

#  {
#    "id": 12195009364024,
#    "product_id": 1321541042232,
#    "title": "xs",
#  ...
#    "inventory_item_id": 12250274365496,
#  ...
#    "admin_graphql_api_id": "gid://shopify/ProductVariant/12195009364024"
#  }
#  

set id [CkJsonObject_IntOf $jsonResponse "id"]
set product_id [CkJsonObject_IntOf $jsonResponse "product_id"]
set title [CkJsonObject_stringOf $jsonResponse "title"]
set inventory_item_id [CkJsonObject_IntOf $jsonResponse "inventory_item_id"]
set admin_graphql_api_id [CkJsonObject_stringOf $jsonResponse "admin_graphql_api_id"]

delete_CkHttp $http
delete_CkHttpResponse $resp
delete_CkJsonObject $jsonResponse