Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Tcl) Shopify Create a new product with multiple product variantsCreate a new product with multiple product variants
load ./chilkat.dll 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 } # The following code creates the JSON request body. # The JSON created by this code is shown below. set jsonReq [new_CkJsonObject] CkJsonObject_UpdateString $jsonReq "product.title" "Burton Custom Freestyle 151" CkJsonObject_UpdateString $jsonReq "product.body_html" "<strong>Good snowboard!</strong>" CkJsonObject_UpdateString $jsonReq "product.vendor" "Burton" CkJsonObject_UpdateString $jsonReq "product.product_type" "Snowboard" CkJsonObject_UpdateString $jsonReq "product.variants[0].option1" "First" CkJsonObject_UpdateString $jsonReq "product.variants[0].price" "10.00" CkJsonObject_UpdateString $jsonReq "product.variants[0].sku" "123" CkJsonObject_UpdateString $jsonReq "product.variants[1].option1" "Second" CkJsonObject_UpdateString $jsonReq "product.variants[1].price" "20.00" CkJsonObject_UpdateString $jsonReq "product.variants[1].sku" "123" # The JSON request body created by the above code: # { # "product": { # "title": "Burton Custom Freestyle 151", # "body_html": "<strong>Good snowboard!<\/strong>", # "vendor": "Burton", # "product_type": "Snowboard", # "variants": [ # { # "option1": "First", # "price": "10.00", # "sku": "123" # }, # { # "option1": "Second", # "price": "20.00", # "sku": "123" # } # ] # } # } set sbReq [new_CkStringBuilder] CkJsonObject_EmitSb $jsonReq $sbReq CkRest_AddHeader $rest "Content-Type" "application/json" set sbJson [new_CkStringBuilder] set success [CkRest_FullRequestSb $rest "POST" "/admin/products.json " $sbReq $sbJson] if {$success != 1} then { puts [CkRest_lastErrorText $rest] delete_CkRest $rest delete_CkJsonObject $jsonReq delete_CkStringBuilder $sbReq delete_CkStringBuilder $sbJson exit } if {[CkRest_get_ResponseStatusCode $rest] != 201} then { puts "Received error response code: [CkRest_get_ResponseStatusCode $rest]" puts "Response body:" puts [CkStringBuilder_getAsString $sbJson] delete_CkRest $rest delete_CkJsonObject $jsonReq delete_CkStringBuilder $sbReq 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 productId [CkJsonObject_IntOf $json "product.id"] set productTitle [CkJsonObject_stringOf $json "product.title"] set productBody_html [CkJsonObject_stringOf $json "product.body_html"] set productVendor [CkJsonObject_stringOf $json "product.vendor"] set productProduct_type [CkJsonObject_stringOf $json "product.product_type"] set productCreated_at [CkJsonObject_stringOf $json "product.created_at"] set productHandle [CkJsonObject_stringOf $json "product.handle"] set productUpdated_at [CkJsonObject_stringOf $json "product.updated_at"] set productPublished_at [CkJsonObject_stringOf $json "product.published_at"] set productTemplate_suffix [CkJsonObject_IsNullOf $json "product.template_suffix"] set productPublished_scope [CkJsonObject_stringOf $json "product.published_scope"] set productTags [CkJsonObject_stringOf $json "product.tags"] set productImage [CkJsonObject_IsNullOf $json "product.image"] set i 0 set count_i [CkJsonObject_SizeOfArray $json "product.variants"] while {$i < $count_i} { CkJsonObject_put_I $json $i set id [CkJsonObject_IntOf $json "product.variants[i].id"] set product_id [CkJsonObject_IntOf $json "product.variants[i].product_id"] set title [CkJsonObject_stringOf $json "product.variants[i].title"] set price [CkJsonObject_stringOf $json "product.variants[i].price"] set sku [CkJsonObject_stringOf $json "product.variants[i].sku"] set position [CkJsonObject_IntOf $json "product.variants[i].position"] set grams [CkJsonObject_IntOf $json "product.variants[i].grams"] set inventory_policy [CkJsonObject_stringOf $json "product.variants[i].inventory_policy"] set compare_at_price [CkJsonObject_IsNullOf $json "product.variants[i].compare_at_price"] set fulfillment_service [CkJsonObject_stringOf $json "product.variants[i].fulfillment_service"] set inventory_management [CkJsonObject_IsNullOf $json "product.variants[i].inventory_management"] set option1 [CkJsonObject_stringOf $json "product.variants[i].option1"] set option2 [CkJsonObject_IsNullOf $json "product.variants[i].option2"] set option3 [CkJsonObject_IsNullOf $json "product.variants[i].option3"] set created_at [CkJsonObject_stringOf $json "product.variants[i].created_at"] set updated_at [CkJsonObject_stringOf $json "product.variants[i].updated_at"] set taxable [CkJsonObject_BoolOf $json "product.variants[i].taxable"] set barcode [CkJsonObject_IsNullOf $json "product.variants[i].barcode"] set image_id [CkJsonObject_IsNullOf $json "product.variants[i].image_id"] set inventory_quantity [CkJsonObject_IntOf $json "product.variants[i].inventory_quantity"] set weight [CkJsonObject_IntOf $json "product.variants[i].weight"] set weight_unit [CkJsonObject_stringOf $json "product.variants[i].weight_unit"] set old_inventory_quantity [CkJsonObject_IntOf $json "product.variants[i].old_inventory_quantity"] set requires_shipping [CkJsonObject_BoolOf $json "product.variants[i].requires_shipping"] set i [expr $i + 1] } set i 0 set count_i [CkJsonObject_SizeOfArray $json "product.options"] while {$i < $count_i} { CkJsonObject_put_I $json $i set id [CkJsonObject_IntOf $json "product.options[i].id"] set product_id [CkJsonObject_IntOf $json "product.options[i].product_id"] set name [CkJsonObject_stringOf $json "product.options[i].name"] set position [CkJsonObject_IntOf $json "product.options[i].position"] set j 0 set count_j [CkJsonObject_SizeOfArray $json "product.options[i].values"] while {$j < $count_j} { CkJsonObject_put_J $json $j set strVal [CkJsonObject_stringOf $json "product.options[i].values[j]"] set j [expr $j + 1] } set i [expr $i + 1] } set i 0 set count_i [CkJsonObject_SizeOfArray $json "product.images"] while {$i < $count_i} { CkJsonObject_put_I $json $i set i [expr $i + 1] } # A sample JSON response body that is parsed by the above code: # { # "product": { # "id": 1071559755, # "title": "Burton Custom Freestyle 151", # "body_html": "<strong>Good snowboard!<\/strong>", # "vendor": "Burton", # "product_type": "Snowboard", # "created_at": "2017-09-22T14:48:54-04:00", # "handle": "burton-custom-freestyle-151", # "updated_at": "2017-09-22T14:48:55-04:00", # "published_at": "2017-09-22T14:48:54-04:00", # "template_suffix": null, # "published_scope": "global", # "tags": "", # "variants": [ # { # "id": 1070325225, # "product_id": 1071559755, # "title": "First", # "price": "10.00", # "sku": "123", # "position": 1, # "grams": 0, # "inventory_policy": "deny", # "compare_at_price": null, # "fulfillment_service": "manual", # "inventory_management": null, # "option1": "First", # "option2": null, # "option3": null, # "created_at": "2017-09-22T14:48:54-04:00", # "updated_at": "2017-09-22T14:48:54-04:00", # "taxable": true, # "barcode": null, # "image_id": null, # "inventory_quantity": 1, # "weight": 0.0, # "weight_unit": "lb", # "old_inventory_quantity": 1, # "requires_shipping": true # }, # { # "id": 1070325226, # "product_id": 1071559755, # "title": "Second", # "price": "20.00", # "sku": "123", # "position": 2, # "grams": 0, # "inventory_policy": "deny", # "compare_at_price": null, # "fulfillment_service": "manual", # "inventory_management": null, # "option1": "Second", # "option2": null, # "option3": null, # "created_at": "2017-09-22T14:48:54-04:00", # "updated_at": "2017-09-22T14:48:54-04:00", # "taxable": true, # "barcode": null, # "image_id": null, # "inventory_quantity": 1, # "weight": 0.0, # "weight_unit": "lb", # "old_inventory_quantity": 1, # "requires_shipping": true # } # ], # "options": [ # { # "id": 1022828915, # "product_id": 1071559755, # "name": "Title", # "position": 1, # "values": [ # "First", # "Second" # ] # } # ], # "images": [ # ], # "image": null # } # } puts "Example Completed." delete_CkRest $rest delete_CkJsonObject $jsonReq delete_CkStringBuilder $sbReq delete_CkStringBuilder $sbJson delete_CkJsonObject $json |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.