Sample code for 30+ languages & platforms
Visual Basic 6.0

Shopify Update a product and associated variants and images

See more Shopify Examples

Update a product and associated variants and images

Chilkat Visual Basic 6.0 Downloads

Visual Basic 6.0
Dim success As Long
success = 0

Dim rest As New ChilkatRest

success = rest.SetAuthBasic("SHOPIFY_PRIVATE_API_KEY","SHOPIFY_PRIVATE_API_KEY")

success = rest.Connect("chilkat.myshopify.com",443,1,1)
If (success <> 1) Then
    Debug.Print rest.LastErrorText
    Exit Sub
End If

' The following code creates the JSON request body.
' The JSON created by this code is shown below.
Dim jsonReq As New ChilkatJsonObject
success = jsonReq.UpdateNumber("product.id","632910392")
success = jsonReq.UpdateBool("product.published",0)

' The JSON request body created by the above code:

' {
'   "product": {
'     "id": 632910392,
'     "published": false
'   }
' }

Dim sbReq As New ChilkatStringBuilder
success = jsonReq.EmitSb(sbReq)

success = rest.AddHeader("Content-Type","application/json")

Dim sbJson As New ChilkatStringBuilder
success = rest.FullRequestSb("PUT","/admin/products/#{id}.json",sbReq,sbJson)
If (success <> 1) Then
    Debug.Print rest.LastErrorText
    Exit Sub
End If

If (rest.ResponseStatusCode <> 200) Then
    Debug.Print "Received error response code: " & rest.ResponseStatusCode
    Debug.Print "Response body:"
    Debug.Print sbJson.GetAsString()
    Exit Sub
End If

Dim json As New ChilkatJsonObject
success = json.LoadSb(sbJson)

' The following code parses the JSON response.
' A sample JSON response is shown below the sample code.
Dim productId As Long
Dim productTitle As String
Dim productBody_html As String
Dim productVendor As String
Dim productProduct_type As String
Dim productCreated_at As String
Dim productHandle As String
Dim productUpdated_at As String
Dim productPublished_at As Long
Dim productTemplate_suffix As Long
Dim productPublished_scope As String
Dim productTags As String
Dim productImageId As Long
Dim productImageProduct_id As Long
Dim productImagePosition As Long
Dim productImageCreated_at As String
Dim productImageUpdated_at As String
Dim productImageWidth As Long
Dim productImageHeight As Long
Dim productImageSrc As String
Dim i As Long
Dim count_i As Long
Dim id As Long
Dim product_id As Long
Dim title As String
Dim price As String
Dim sku As String
Dim position As Long
Dim grams As Long
Dim inventory_policy As String
Dim compare_at_price As Long
Dim fulfillment_service As String
Dim inventory_management As String
Dim option1 As String
Dim option2 As Long
Dim option3 As Long
Dim created_at As String
Dim updated_at As String
Dim taxable As Long
Dim barcode As String
Dim image_id As Long
Dim inventory_quantity As Long
Dim weight As Long
Dim weight_unit As String
Dim old_inventory_quantity As Long
Dim requires_shipping As Long
Dim name As String
Dim j As Long
Dim count_j As Long
Dim strVal As String
Dim width As Long
Dim height As Long
Dim src As String
Dim intVal As Long

productId = json.IntOf("product.id")
productTitle = json.StringOf("product.title")
productBody_html = json.StringOf("product.body_html")
productVendor = json.StringOf("product.vendor")
productProduct_type = json.StringOf("product.product_type")
productCreated_at = json.StringOf("product.created_at")
productHandle = json.StringOf("product.handle")
productUpdated_at = json.StringOf("product.updated_at")
productPublished_at = json.IsNullOf("product.published_at")
productTemplate_suffix = json.IsNullOf("product.template_suffix")
productPublished_scope = json.StringOf("product.published_scope")
productTags = json.StringOf("product.tags")
productImageId = json.IntOf("product.image.id")
productImageProduct_id = json.IntOf("product.image.product_id")
productImagePosition = json.IntOf("product.image.position")
productImageCreated_at = json.StringOf("product.image.created_at")
productImageUpdated_at = json.StringOf("product.image.updated_at")
productImageWidth = json.IntOf("product.image.width")
productImageHeight = json.IntOf("product.image.height")
productImageSrc = json.StringOf("product.image.src")
i = 0
count_i = json.SizeOfArray("product.variants")
Do While i < count_i
    json.I = i
    id = json.IntOf("product.variants[i].id")
    product_id = json.IntOf("product.variants[i].product_id")
    title = json.StringOf("product.variants[i].title")
    price = json.StringOf("product.variants[i].price")
    sku = json.StringOf("product.variants[i].sku")
    position = json.IntOf("product.variants[i].position")
    grams = json.IntOf("product.variants[i].grams")
    inventory_policy = json.StringOf("product.variants[i].inventory_policy")
    compare_at_price = json.IsNullOf("product.variants[i].compare_at_price")
    fulfillment_service = json.StringOf("product.variants[i].fulfillment_service")
    inventory_management = json.StringOf("product.variants[i].inventory_management")
    option1 = json.StringOf("product.variants[i].option1")
    option2 = json.IsNullOf("product.variants[i].option2")
    option3 = json.IsNullOf("product.variants[i].option3")
    created_at = json.StringOf("product.variants[i].created_at")
    updated_at = json.StringOf("product.variants[i].updated_at")
    taxable = json.BoolOf("product.variants[i].taxable")
    barcode = json.StringOf("product.variants[i].barcode")
    image_id = json.IntOf("product.variants[i].image_id")
    inventory_quantity = json.IntOf("product.variants[i].inventory_quantity")
    weight = json.IntOf("product.variants[i].weight")
    weight_unit = json.StringOf("product.variants[i].weight_unit")
    old_inventory_quantity = json.IntOf("product.variants[i].old_inventory_quantity")
    requires_shipping = json.BoolOf("product.variants[i].requires_shipping")
    i = i + 1
Loop
i = 0
count_i = json.SizeOfArray("product.options")
Do While i < count_i
    json.I = i
    id = json.IntOf("product.options[i].id")
    product_id = json.IntOf("product.options[i].product_id")
    name = json.StringOf("product.options[i].name")
    position = json.IntOf("product.options[i].position")
    j = 0
    count_j = json.SizeOfArray("product.options[i].values")
    Do While j < count_j
        json.J = j
        strVal = json.StringOf("product.options[i].values[j]")
        j = j + 1
    Loop
    i = i + 1
Loop
i = 0
count_i = json.SizeOfArray("product.images")
Do While i < count_i
    json.I = i
    id = json.IntOf("product.images[i].id")
    product_id = json.IntOf("product.images[i].product_id")
    position = json.IntOf("product.images[i].position")
    created_at = json.StringOf("product.images[i].created_at")
    updated_at = json.StringOf("product.images[i].updated_at")
    width = json.IntOf("product.images[i].width")
    height = json.IntOf("product.images[i].height")
    src = json.StringOf("product.images[i].src")
    j = 0
    count_j = json.SizeOfArray("product.images[i].variant_ids")
    Do While j < count_j
        json.J = j
        intVal = json.IntOf("product.images[i].variant_ids[j]")
        j = j + 1
    Loop
    i = i + 1
Loop
i = 0
count_i = json.SizeOfArray("image.product.variant_ids")
Do While i < count_i
    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": [
'       ]
'     }
'   }
' }

Debug.Print "Example Completed."