AutoIt
AutoIt
Shopify Update a product and associated variants and images
See more Shopify Examples
Update a product and associated variants and imagesChilkat AutoIt Downloads
Local $bSuccess = False
$oRest = ObjCreate("Chilkat.Rest")
$oRest.SetAuthBasic("SHOPIFY_PRIVATE_API_KEY","SHOPIFY_PRIVATE_API_KEY")
$bSuccess = $oRest.Connect("chilkat.myshopify.com",443,True,True)
If ($bSuccess <> True) Then
ConsoleWrite($oRest.LastErrorText & @CRLF)
Exit
EndIf
; The following code creates the JSON request body.
; The JSON created by this code is shown below.
$oJsonReq = ObjCreate("Chilkat.JsonObject")
$oJsonReq.UpdateNumber("product.id","632910392")
$oJsonReq.UpdateBool("product.published",False)
; The JSON request body created by the above code:
; {
; "product": {
; "id": 632910392,
; "published": false
; }
; }
$oSbReq = ObjCreate("Chilkat.StringBuilder")
$oJsonReq.EmitSb($oSbReq)
$oRest.AddHeader("Content-Type","application/json")
$oSbJson = ObjCreate("Chilkat.StringBuilder")
$bSuccess = $oRest.FullRequestSb("PUT","/admin/products/#{id}.json",$oSbReq,$oSbJson)
If ($bSuccess <> True) Then
ConsoleWrite($oRest.LastErrorText & @CRLF)
Exit
EndIf
If ($oRest.ResponseStatusCode <> 200) Then
ConsoleWrite("Received error response code: " & $oRest.ResponseStatusCode & @CRLF)
ConsoleWrite("Response body:" & @CRLF)
ConsoleWrite($oSbJson.GetAsString() & @CRLF)
Exit
EndIf
$oJson = ObjCreate("Chilkat.JsonObject")
$oJson.LoadSb($oSbJson)
; The following code parses the JSON response.
; A sample JSON response is shown below the sample code.
Local $iProductId
Local $sProductTitle
Local $sProductBody_html
Local $sProductVendor
Local $sProductProduct_type
Local $sProductCreated_at
Local $sProductHandle
Local $sProductUpdated_at
Local $bProductPublished_at
Local $bProductTemplate_suffix
Local $sProductPublished_scope
Local $sProductTags
Local $iProductImageId
Local $iProductImageProduct_id
Local $iProductImagePosition
Local $sProductImageCreated_at
Local $sProductImageUpdated_at
Local $iProductImageWidth
Local $iProductImageHeight
Local $sProductImageSrc
Local $i
Local $iCount_i
Local $id
Local $iProduct_id
Local $sTitle
Local $sPrice
Local $sku
Local $iPosition
Local $iGrams
Local $sInventory_policy
Local $bCompare_at_price
Local $sFulfillment_service
Local $sInventory_management
Local $sOption1
Local $bOption2
Local $bOption3
Local $sCreated_at
Local $sUpdated_at
Local $bTaxable
Local $sBarcode
Local $image_id
Local $inventory_quantity
Local $iWeight
Local $sWeight_unit
Local $iOld_inventory_quantity
Local $bRequires_shipping
Local $sName
Local $iJ
Local $iCount_j
Local $strVal
Local $iWidth
Local $iHeight
Local $src
Local $intVal
$iProductId = $oJson.IntOf("product.id")
$sProductTitle = $oJson.StringOf("product.title")
$sProductBody_html = $oJson.StringOf("product.body_html")
$sProductVendor = $oJson.StringOf("product.vendor")
$sProductProduct_type = $oJson.StringOf("product.product_type")
$sProductCreated_at = $oJson.StringOf("product.created_at")
$sProductHandle = $oJson.StringOf("product.handle")
$sProductUpdated_at = $oJson.StringOf("product.updated_at")
$bProductPublished_at = $oJson.IsNullOf("product.published_at")
$bProductTemplate_suffix = $oJson.IsNullOf("product.template_suffix")
$sProductPublished_scope = $oJson.StringOf("product.published_scope")
$sProductTags = $oJson.StringOf("product.tags")
$iProductImageId = $oJson.IntOf("product.image.id")
$iProductImageProduct_id = $oJson.IntOf("product.image.product_id")
$iProductImagePosition = $oJson.IntOf("product.image.position")
$sProductImageCreated_at = $oJson.StringOf("product.image.created_at")
$sProductImageUpdated_at = $oJson.StringOf("product.image.updated_at")
$iProductImageWidth = $oJson.IntOf("product.image.width")
$iProductImageHeight = $oJson.IntOf("product.image.height")
$sProductImageSrc = $oJson.StringOf("product.image.src")
$i = 0
$iCount_i = $oJson.SizeOfArray("product.variants")
While $i < $iCount_i
$oJson.I = $i
$id = $oJson.IntOf("product.variants[i].id")
$iProduct_id = $oJson.IntOf("product.variants[i].product_id")
$sTitle = $oJson.StringOf("product.variants[i].title")
$sPrice = $oJson.StringOf("product.variants[i].price")
$sku = $oJson.StringOf("product.variants[i].sku")
$iPosition = $oJson.IntOf("product.variants[i].position")
$iGrams = $oJson.IntOf("product.variants[i].grams")
$sInventory_policy = $oJson.StringOf("product.variants[i].inventory_policy")
$bCompare_at_price = $oJson.IsNullOf("product.variants[i].compare_at_price")
$sFulfillment_service = $oJson.StringOf("product.variants[i].fulfillment_service")
$sInventory_management = $oJson.StringOf("product.variants[i].inventory_management")
$sOption1 = $oJson.StringOf("product.variants[i].option1")
$bOption2 = $oJson.IsNullOf("product.variants[i].option2")
$bOption3 = $oJson.IsNullOf("product.variants[i].option3")
$sCreated_at = $oJson.StringOf("product.variants[i].created_at")
$sUpdated_at = $oJson.StringOf("product.variants[i].updated_at")
$bTaxable = $oJson.BoolOf("product.variants[i].taxable")
$sBarcode = $oJson.StringOf("product.variants[i].barcode")
$image_id = $oJson.IntOf("product.variants[i].image_id")
$inventory_quantity = $oJson.IntOf("product.variants[i].inventory_quantity")
$iWeight = $oJson.IntOf("product.variants[i].weight")
$sWeight_unit = $oJson.StringOf("product.variants[i].weight_unit")
$iOld_inventory_quantity = $oJson.IntOf("product.variants[i].old_inventory_quantity")
$bRequires_shipping = $oJson.BoolOf("product.variants[i].requires_shipping")
$i = $i + 1
Wend
$i = 0
$iCount_i = $oJson.SizeOfArray("product.options")
While $i < $iCount_i
$oJson.I = $i
$id = $oJson.IntOf("product.options[i].id")
$iProduct_id = $oJson.IntOf("product.options[i].product_id")
$sName = $oJson.StringOf("product.options[i].name")
$iPosition = $oJson.IntOf("product.options[i].position")
$iJ = 0
$iCount_j = $oJson.SizeOfArray("product.options[i].values")
While $iJ < $iCount_j
$oJson.J = $iJ
$strVal = $oJson.StringOf("product.options[i].values[j]")
$iJ = $iJ + 1
Wend
$i = $i + 1
Wend
$i = 0
$iCount_i = $oJson.SizeOfArray("product.images")
While $i < $iCount_i
$oJson.I = $i
$id = $oJson.IntOf("product.images[i].id")
$iProduct_id = $oJson.IntOf("product.images[i].product_id")
$iPosition = $oJson.IntOf("product.images[i].position")
$sCreated_at = $oJson.StringOf("product.images[i].created_at")
$sUpdated_at = $oJson.StringOf("product.images[i].updated_at")
$iWidth = $oJson.IntOf("product.images[i].width")
$iHeight = $oJson.IntOf("product.images[i].height")
$src = $oJson.StringOf("product.images[i].src")
$iJ = 0
$iCount_j = $oJson.SizeOfArray("product.images[i].variant_ids")
While $iJ < $iCount_j
$oJson.J = $iJ
$intVal = $oJson.IntOf("product.images[i].variant_ids[j]")
$iJ = $iJ + 1
Wend
$i = $i + 1
Wend
$i = 0
$iCount_i = $oJson.SizeOfArray("image.product.variant_ids")
While $i < $iCount_i
$oJson.I = $i
$i = $i + 1
Wend
; 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:36-04:00",
; "published_at": null,
; "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:37-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": [
; ]
; }
; }
; }
ConsoleWrite("Example Completed." & @CRLF)