DataFlex
DataFlex
Shopify Update a product and associated variants and images
See more Shopify Examples
Update a product and associated variants and imagesChilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoRest
Req Handle hoJsonReq
Variant vSbReq
Handle hoSbReq
Variant vSbJson
Handle hoSbJson
Handle hoJson
Integer iProductId
String sProductTitle
String sProductBody_html
String sProductVendor
String sProductProduct_type
String sProductCreated_at
String sProductHandle
String sProductUpdated_at
Boolean iProductPublished_at
Boolean iProductTemplate_suffix
String sProductPublished_scope
String sProductTags
Integer iProductImageId
Integer iProductImageProduct_id
Integer iProductImagePosition
String sProductImageCreated_at
String sProductImageUpdated_at
Integer iProductImageWidth
Integer iProductImageHeight
String sProductImageSrc
Integer i
Integer iCount_i
Integer iId
Integer iProduct_id
String sTitle
String sPrice
String sSku
Integer iPosition
Integer iGrams
String sInventory_policy
Boolean iCompare_at_price
String sFulfillment_service
String sInventory_management
String sOption1
Boolean iOption2
Boolean iOption3
String sCreated_at
String sUpdated_at
Boolean iTaxable
String sBarcode
Integer iImage_id
Integer iInventory_quantity
Integer iWeight
String sWeight_unit
Integer iOld_inventory_quantity
Boolean iRequires_shipping
String sName
Integer j
Integer iCount_j
String sStrVal
Integer iWidth
Integer iHeight
String sSrc
Integer iIntVal
String sTemp1
Integer iTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatRest)) To hoRest
If (Not(IsComObjectCreated(hoRest))) Begin
Send CreateComObject of hoRest
End
Get ComSetAuthBasic Of hoRest "SHOPIFY_PRIVATE_API_KEY" "SHOPIFY_PRIVATE_API_KEY" To iSuccess
Get ComConnect Of hoRest "chilkat.myshopify.com" 443 True True To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoRest To sTemp1
Showln sTemp1
Procedure_Return
End
// The following code creates the JSON request body.
// The JSON created by this code is shown below.
Get Create (RefClass(cComChilkatJsonObject)) To hoJsonReq
If (Not(IsComObjectCreated(hoJsonReq))) Begin
Send CreateComObject of hoJsonReq
End
Get ComUpdateNumber Of hoJsonReq "product.id" "632910392" To iSuccess
Get ComUpdateBool Of hoJsonReq "product.published" False To iSuccess
// The JSON request body created by the above code:
// {
// "product": {
// "id": 632910392,
// "published": false
// }
// }
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbReq
If (Not(IsComObjectCreated(hoSbReq))) Begin
Send CreateComObject of hoSbReq
End
Get pvComObject of hoSbReq to vSbReq
Get ComEmitSb Of hoJsonReq vSbReq To iSuccess
Get ComAddHeader Of hoRest "Content-Type" "application/json" To iSuccess
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbJson
If (Not(IsComObjectCreated(hoSbJson))) Begin
Send CreateComObject of hoSbJson
End
Get pvComObject of hoSbReq to vSbReq
Get pvComObject of hoSbJson to vSbJson
Get ComFullRequestSb Of hoRest "PUT" "/admin/products/#{id}.json" vSbReq vSbJson To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoRest To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComResponseStatusCode Of hoRest To iTemp1
If (iTemp1 <> 200) Begin
Get ComResponseStatusCode Of hoRest To iTemp1
Showln "Received error response code: " iTemp1
Showln "Response body:"
Get ComGetAsString Of hoSbJson To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get pvComObject of hoSbJson to vSbJson
Get ComLoadSb Of hoJson vSbJson To iSuccess
// The following code parses the JSON response.
// A sample JSON response is shown below the sample code.
Get ComIntOf Of hoJson "product.id" To iProductId
Get ComStringOf Of hoJson "product.title" To sProductTitle
Get ComStringOf Of hoJson "product.body_html" To sProductBody_html
Get ComStringOf Of hoJson "product.vendor" To sProductVendor
Get ComStringOf Of hoJson "product.product_type" To sProductProduct_type
Get ComStringOf Of hoJson "product.created_at" To sProductCreated_at
Get ComStringOf Of hoJson "product.handle" To sProductHandle
Get ComStringOf Of hoJson "product.updated_at" To sProductUpdated_at
Get ComIsNullOf Of hoJson "product.published_at" To iProductPublished_at
Get ComIsNullOf Of hoJson "product.template_suffix" To iProductTemplate_suffix
Get ComStringOf Of hoJson "product.published_scope" To sProductPublished_scope
Get ComStringOf Of hoJson "product.tags" To sProductTags
Get ComIntOf Of hoJson "product.image.id" To iProductImageId
Get ComIntOf Of hoJson "product.image.product_id" To iProductImageProduct_id
Get ComIntOf Of hoJson "product.image.position" To iProductImagePosition
Get ComStringOf Of hoJson "product.image.created_at" To sProductImageCreated_at
Get ComStringOf Of hoJson "product.image.updated_at" To sProductImageUpdated_at
Get ComIntOf Of hoJson "product.image.width" To iProductImageWidth
Get ComIntOf Of hoJson "product.image.height" To iProductImageHeight
Get ComStringOf Of hoJson "product.image.src" To sProductImageSrc
Move 0 To i
Get ComSizeOfArray Of hoJson "product.variants" To iCount_i
While (i < iCount_i)
Set ComI Of hoJson To i
Get ComIntOf Of hoJson "product.variants[i].id" To iId
Get ComIntOf Of hoJson "product.variants[i].product_id" To iProduct_id
Get ComStringOf Of hoJson "product.variants[i].title" To sTitle
Get ComStringOf Of hoJson "product.variants[i].price" To sPrice
Get ComStringOf Of hoJson "product.variants[i].sku" To sSku
Get ComIntOf Of hoJson "product.variants[i].position" To iPosition
Get ComIntOf Of hoJson "product.variants[i].grams" To iGrams
Get ComStringOf Of hoJson "product.variants[i].inventory_policy" To sInventory_policy
Get ComIsNullOf Of hoJson "product.variants[i].compare_at_price" To iCompare_at_price
Get ComStringOf Of hoJson "product.variants[i].fulfillment_service" To sFulfillment_service
Get ComStringOf Of hoJson "product.variants[i].inventory_management" To sInventory_management
Get ComStringOf Of hoJson "product.variants[i].option1" To sOption1
Get ComIsNullOf Of hoJson "product.variants[i].option2" To iOption2
Get ComIsNullOf Of hoJson "product.variants[i].option3" To iOption3
Get ComStringOf Of hoJson "product.variants[i].created_at" To sCreated_at
Get ComStringOf Of hoJson "product.variants[i].updated_at" To sUpdated_at
Get ComBoolOf Of hoJson "product.variants[i].taxable" To iTaxable
Get ComStringOf Of hoJson "product.variants[i].barcode" To sBarcode
Get ComIntOf Of hoJson "product.variants[i].image_id" To iImage_id
Get ComIntOf Of hoJson "product.variants[i].inventory_quantity" To iInventory_quantity
Get ComIntOf Of hoJson "product.variants[i].weight" To iWeight
Get ComStringOf Of hoJson "product.variants[i].weight_unit" To sWeight_unit
Get ComIntOf Of hoJson "product.variants[i].old_inventory_quantity" To iOld_inventory_quantity
Get ComBoolOf Of hoJson "product.variants[i].requires_shipping" To iRequires_shipping
Move (i + 1) To i
Loop
Move 0 To i
Get ComSizeOfArray Of hoJson "product.options" To iCount_i
While (i < iCount_i)
Set ComI Of hoJson To i
Get ComIntOf Of hoJson "product.options[i].id" To iId
Get ComIntOf Of hoJson "product.options[i].product_id" To iProduct_id
Get ComStringOf Of hoJson "product.options[i].name" To sName
Get ComIntOf Of hoJson "product.options[i].position" To iPosition
Move 0 To j
Get ComSizeOfArray Of hoJson "product.options[i].values" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJson To j
Get ComStringOf Of hoJson "product.options[i].values[j]" To sStrVal
Move (j + 1) To j
Loop
Move (i + 1) To i
Loop
Move 0 To i
Get ComSizeOfArray Of hoJson "product.images" To iCount_i
While (i < iCount_i)
Set ComI Of hoJson To i
Get ComIntOf Of hoJson "product.images[i].id" To iId
Get ComIntOf Of hoJson "product.images[i].product_id" To iProduct_id
Get ComIntOf Of hoJson "product.images[i].position" To iPosition
Get ComStringOf Of hoJson "product.images[i].created_at" To sCreated_at
Get ComStringOf Of hoJson "product.images[i].updated_at" To sUpdated_at
Get ComIntOf Of hoJson "product.images[i].width" To iWidth
Get ComIntOf Of hoJson "product.images[i].height" To iHeight
Get ComStringOf Of hoJson "product.images[i].src" To sSrc
Move 0 To j
Get ComSizeOfArray Of hoJson "product.images[i].variant_ids" To iCount_j
While (j < iCount_j)
Set ComJ Of hoJson To j
Get ComIntOf Of hoJson "product.images[i].variant_ids[j]" To iIntVal
Move (j + 1) To j
Loop
Move (i + 1) To i
Loop
Move 0 To i
Get ComSizeOfArray Of hoJson "image.product.variant_ids" To iCount_i
While (i < iCount_i)
Set ComI Of hoJson To i
Move (i + 1) To i
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": [
// ]
// }
// }
// }
Showln "Example Completed."
End_Procedure