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 Add a metafield to an existing productAdd a metafield to an existing product
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_UpdateNumber $jsonReq "product.id" "632910392" CkJsonObject_UpdateString $jsonReq "product.metafields[0].key" "new" CkJsonObject_UpdateString $jsonReq "product.metafields[0].value" "newvalue" CkJsonObject_UpdateString $jsonReq "product.metafields[0].value_type" "string" CkJsonObject_UpdateString $jsonReq "product.metafields[0].namespace" "global" # The JSON request body created by the above code: # { # "product": { # "id": 632910392, # "metafields": [ # { # "key": "new", # "value": "newvalue", # "value_type": "string", # "namespace": "global" # } # ] # } # } set sbReq [new_CkStringBuilder] CkJsonObject_EmitSb $jsonReq $sbReq CkRest_AddHeader $rest "Content-Type" "application/json" set sbJson [new_CkStringBuilder] set success [CkRest_FullRequestSb $rest "PUT" "/admin/products/#{id}.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] != 200} 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 productImageId [CkJsonObject_IntOf $json "product.image.id"] set productImageProduct_id [CkJsonObject_IntOf $json "product.image.product_id"] set productImagePosition [CkJsonObject_IntOf $json "product.image.position"] set productImageCreated_at [CkJsonObject_stringOf $json "product.image.created_at"] set productImageUpdated_at [CkJsonObject_stringOf $json "product.image.updated_at"] set productImageWidth [CkJsonObject_IntOf $json "product.image.width"] set productImageHeight [CkJsonObject_IntOf $json "product.image.height"] set productImageSrc [CkJsonObject_stringOf $json "product.image.src"] 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_stringOf $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_stringOf $json "product.variants[i].barcode"] set image_id [CkJsonObject_IntOf $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 id [CkJsonObject_IntOf $json "product.images[i].id"] set product_id [CkJsonObject_IntOf $json "product.images[i].product_id"] set position [CkJsonObject_IntOf $json "product.images[i].position"] set created_at [CkJsonObject_stringOf $json "product.images[i].created_at"] set updated_at [CkJsonObject_stringOf $json "product.images[i].updated_at"] set width [CkJsonObject_IntOf $json "product.images[i].width"] set height [CkJsonObject_IntOf $json "product.images[i].height"] set src [CkJsonObject_stringOf $json "product.images[i].src"] set j 0 set count_j [CkJsonObject_SizeOfArray $json "product.images[i].variant_ids"] while {$j < $count_j} { CkJsonObject_put_J $json $j set intVal [CkJsonObject_IntOf $json "product.images[i].variant_ids[j]"] set j [expr $j + 1] } set i [expr $i + 1] } set i 0 set count_i [CkJsonObject_SizeOfArray $json "image.product.variant_ids"] 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": 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:48:57-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:48:57-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_CkJsonObject $jsonReq delete_CkStringBuilder $sbReq delete_CkStringBuilder $sbJson delete_CkJsonObject $json |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.