PowerBuilder
PowerBuilder
Shopify Update a product and associated variants and images
See more Shopify Examples
Update a product and associated variants and imagesChilkat PowerBuilder Downloads
integer li_rc
long li_Success
oleobject loo_Rest
oleobject loo_JsonReq
oleobject loo_SbReq
oleobject loo_SbJson
oleobject loo_Json
long li_ProductId
string ls_ProductTitle
string ls_ProductBody_html
string ls_ProductVendor
string ls_ProductProduct_type
string ls_ProductCreated_at
string ls_ProductHandle
string ls_ProductUpdated_at
long li_ProductPublished_at
long li_ProductTemplate_suffix
string ls_ProductPublished_scope
string ls_ProductTags
long li_ProductImageId
long li_ProductImageProduct_id
long li_ProductImagePosition
string ls_ProductImageCreated_at
string ls_ProductImageUpdated_at
long li_ProductImageWidth
long li_ProductImageHeight
string ls_ProductImageSrc
long i
long li_Count_i
long li_Id
long li_Product_id
string ls_Title
string ls_Price
string ls_Sku
long li_Position
long li_Grams
string ls_Inventory_policy
long li_Compare_at_price
string ls_Fulfillment_service
string ls_Inventory_management
string ls_Option1
long li_Option2
long li_Option3
string ls_Created_at
string ls_Updated_at
long li_Taxable
string ls_Barcode
long li_Image_id
long li_Inventory_quantity
long li_Weight
string ls_Weight_unit
long li_Old_inventory_quantity
long li_Requires_shipping
string ls_Name
long j
long li_Count_j
string ls_StrVal
long li_Width
long li_Height
string ls_Src
long li_IntVal
li_Success = 0
loo_Rest = create oleobject
li_rc = loo_Rest.ConnectToNewObject("Chilkat.Rest")
if li_rc < 0 then
destroy loo_Rest
MessageBox("Error","Connecting to COM object failed")
return
end if
loo_Rest.SetAuthBasic("SHOPIFY_PRIVATE_API_KEY","SHOPIFY_PRIVATE_API_KEY")
li_Success = loo_Rest.Connect("chilkat.myshopify.com",443,1,1)
if li_Success <> 1 then
Write-Debug loo_Rest.LastErrorText
destroy loo_Rest
return
end if
// The following code creates the JSON request body.
// The JSON created by this code is shown below.
loo_JsonReq = create oleobject
li_rc = loo_JsonReq.ConnectToNewObject("Chilkat.JsonObject")
loo_JsonReq.UpdateNumber("product.id","632910392")
loo_JsonReq.UpdateBool("product.published",0)
// The JSON request body created by the above code:
// {
// "product": {
// "id": 632910392,
// "published": false
// }
// }
loo_SbReq = create oleobject
li_rc = loo_SbReq.ConnectToNewObject("Chilkat.StringBuilder")
loo_JsonReq.EmitSb(loo_SbReq)
loo_Rest.AddHeader("Content-Type","application/json")
loo_SbJson = create oleobject
li_rc = loo_SbJson.ConnectToNewObject("Chilkat.StringBuilder")
li_Success = loo_Rest.FullRequestSb("PUT","/admin/products/#{id}.json",loo_SbReq,loo_SbJson)
if li_Success <> 1 then
Write-Debug loo_Rest.LastErrorText
destroy loo_Rest
destroy loo_JsonReq
destroy loo_SbReq
destroy loo_SbJson
return
end if
if loo_Rest.ResponseStatusCode <> 200 then
Write-Debug "Received error response code: " + string(loo_Rest.ResponseStatusCode)
Write-Debug "Response body:"
Write-Debug loo_SbJson.GetAsString()
destroy loo_Rest
destroy loo_JsonReq
destroy loo_SbReq
destroy loo_SbJson
return
end if
loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")
loo_Json.LoadSb(loo_SbJson)
// The following code parses the JSON response.
// A sample JSON response is shown below the sample code.
li_ProductId = loo_Json.IntOf("product.id")
ls_ProductTitle = loo_Json.StringOf("product.title")
ls_ProductBody_html = loo_Json.StringOf("product.body_html")
ls_ProductVendor = loo_Json.StringOf("product.vendor")
ls_ProductProduct_type = loo_Json.StringOf("product.product_type")
ls_ProductCreated_at = loo_Json.StringOf("product.created_at")
ls_ProductHandle = loo_Json.StringOf("product.handle")
ls_ProductUpdated_at = loo_Json.StringOf("product.updated_at")
li_ProductPublished_at = loo_Json.IsNullOf("product.published_at")
li_ProductTemplate_suffix = loo_Json.IsNullOf("product.template_suffix")
ls_ProductPublished_scope = loo_Json.StringOf("product.published_scope")
ls_ProductTags = loo_Json.StringOf("product.tags")
li_ProductImageId = loo_Json.IntOf("product.image.id")
li_ProductImageProduct_id = loo_Json.IntOf("product.image.product_id")
li_ProductImagePosition = loo_Json.IntOf("product.image.position")
ls_ProductImageCreated_at = loo_Json.StringOf("product.image.created_at")
ls_ProductImageUpdated_at = loo_Json.StringOf("product.image.updated_at")
li_ProductImageWidth = loo_Json.IntOf("product.image.width")
li_ProductImageHeight = loo_Json.IntOf("product.image.height")
ls_ProductImageSrc = loo_Json.StringOf("product.image.src")
i = 0
li_Count_i = loo_Json.SizeOfArray("product.variants")
do while i < li_Count_i
loo_Json.I = i
li_Id = loo_Json.IntOf("product.variants[i].id")
li_Product_id = loo_Json.IntOf("product.variants[i].product_id")
ls_Title = loo_Json.StringOf("product.variants[i].title")
ls_Price = loo_Json.StringOf("product.variants[i].price")
ls_Sku = loo_Json.StringOf("product.variants[i].sku")
li_Position = loo_Json.IntOf("product.variants[i].position")
li_Grams = loo_Json.IntOf("product.variants[i].grams")
ls_Inventory_policy = loo_Json.StringOf("product.variants[i].inventory_policy")
li_Compare_at_price = loo_Json.IsNullOf("product.variants[i].compare_at_price")
ls_Fulfillment_service = loo_Json.StringOf("product.variants[i].fulfillment_service")
ls_Inventory_management = loo_Json.StringOf("product.variants[i].inventory_management")
ls_Option1 = loo_Json.StringOf("product.variants[i].option1")
li_Option2 = loo_Json.IsNullOf("product.variants[i].option2")
li_Option3 = loo_Json.IsNullOf("product.variants[i].option3")
ls_Created_at = loo_Json.StringOf("product.variants[i].created_at")
ls_Updated_at = loo_Json.StringOf("product.variants[i].updated_at")
li_Taxable = loo_Json.BoolOf("product.variants[i].taxable")
ls_Barcode = loo_Json.StringOf("product.variants[i].barcode")
li_Image_id = loo_Json.IntOf("product.variants[i].image_id")
li_Inventory_quantity = loo_Json.IntOf("product.variants[i].inventory_quantity")
li_Weight = loo_Json.IntOf("product.variants[i].weight")
ls_Weight_unit = loo_Json.StringOf("product.variants[i].weight_unit")
li_Old_inventory_quantity = loo_Json.IntOf("product.variants[i].old_inventory_quantity")
li_Requires_shipping = loo_Json.BoolOf("product.variants[i].requires_shipping")
i = i + 1
loop
i = 0
li_Count_i = loo_Json.SizeOfArray("product.options")
do while i < li_Count_i
loo_Json.I = i
li_Id = loo_Json.IntOf("product.options[i].id")
li_Product_id = loo_Json.IntOf("product.options[i].product_id")
ls_Name = loo_Json.StringOf("product.options[i].name")
li_Position = loo_Json.IntOf("product.options[i].position")
j = 0
li_Count_j = loo_Json.SizeOfArray("product.options[i].values")
do while j < li_Count_j
loo_Json.J = j
ls_StrVal = loo_Json.StringOf("product.options[i].values[j]")
j = j + 1
loop
i = i + 1
loop
i = 0
li_Count_i = loo_Json.SizeOfArray("product.images")
do while i < li_Count_i
loo_Json.I = i
li_Id = loo_Json.IntOf("product.images[i].id")
li_Product_id = loo_Json.IntOf("product.images[i].product_id")
li_Position = loo_Json.IntOf("product.images[i].position")
ls_Created_at = loo_Json.StringOf("product.images[i].created_at")
ls_Updated_at = loo_Json.StringOf("product.images[i].updated_at")
li_Width = loo_Json.IntOf("product.images[i].width")
li_Height = loo_Json.IntOf("product.images[i].height")
ls_Src = loo_Json.StringOf("product.images[i].src")
j = 0
li_Count_j = loo_Json.SizeOfArray("product.images[i].variant_ids")
do while j < li_Count_j
loo_Json.J = j
li_IntVal = loo_Json.IntOf("product.images[i].variant_ids[j]")
j = j + 1
loop
i = i + 1
loop
i = 0
li_Count_i = loo_Json.SizeOfArray("image.product.variant_ids")
do while i < li_Count_i
loo_Json.I = i
i = i + 1
loop
// 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": [
// ]
// }
// }
// }
Write-Debug "Example Completed."
destroy loo_Rest
destroy loo_JsonReq
destroy loo_SbReq
destroy loo_SbJson
destroy loo_Json