VB.NET
VB.NET
Shopify Add a metafield to an existing product
See more Shopify Examples
Add a metafield to an existing productChilkat VB.NET Downloads
Dim success As Boolean = False
Dim rest As New Chilkat.Rest
rest.SetAuthBasic("SHOPIFY_PRIVATE_API_KEY","SHOPIFY_PRIVATE_API_KEY")
success = rest.Connect("chilkat.myshopify.com",443,True,True)
If (success <> True) Then
Debug.WriteLine(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 Chilkat.JsonObject
jsonReq.UpdateNumber("product.id","632910392")
jsonReq.UpdateString("product.metafields[0].key","new")
jsonReq.UpdateString("product.metafields[0].value","newvalue")
jsonReq.UpdateString("product.metafields[0].value_type","string")
jsonReq.UpdateString("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"
' }
' ]
' }
' }
Dim sbReq As New Chilkat.StringBuilder
jsonReq.EmitSb(sbReq)
rest.AddHeader("Content-Type","application/json")
Dim sbJson As New Chilkat.StringBuilder
success = rest.FullRequestSb("PUT","/admin/products/#{id}.json",sbReq,sbJson)
If (success <> True) Then
Debug.WriteLine(rest.LastErrorText)
Exit Sub
End If
If (rest.ResponseStatusCode <> 200) Then
Debug.WriteLine("Received error response code: " & rest.ResponseStatusCode)
Debug.WriteLine("Response body:")
Debug.WriteLine(sbJson.GetAsString())
Exit Sub
End If
Dim json As New Chilkat.JsonObject
json.LoadSb(sbJson)
' The following code parses the JSON response.
' A sample JSON response is shown below the sample code.
Dim productId As Integer
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 String
Dim productTemplate_suffix As Boolean
Dim productPublished_scope As String
Dim productTags As String
Dim productImageId As Integer
Dim productImageProduct_id As Integer
Dim productImagePosition As Integer
Dim productImageCreated_at As String
Dim productImageUpdated_at As String
Dim productImageWidth As Integer
Dim productImageHeight As Integer
Dim productImageSrc As String
Dim i As Integer
Dim count_i As Integer
Dim id As Integer
Dim product_id As Integer
Dim title As String
Dim price As String
Dim sku As String
Dim position As Integer
Dim grams As Integer
Dim inventory_policy As String
Dim compare_at_price As Boolean
Dim fulfillment_service As String
Dim inventory_management As String
Dim option1 As String
Dim option2 As Boolean
Dim option3 As Boolean
Dim created_at As String
Dim updated_at As String
Dim taxable As Boolean
Dim barcode As String
Dim image_id As Integer
Dim inventory_quantity As Integer
Dim weight As Integer
Dim weight_unit As String
Dim old_inventory_quantity As Integer
Dim requires_shipping As Boolean
Dim name As String
Dim j As Integer
Dim count_j As Integer
Dim strVal As String
Dim width As Integer
Dim height As Integer
Dim src As String
Dim intVal As Integer
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.StringOf("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")
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
End While
i = 0
count_i = json.SizeOfArray("product.options")
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")
While j < count_j
json.J = j
strVal = json.StringOf("product.options[i].values[j]")
j = j + 1
End While
i = i + 1
End While
i = 0
count_i = json.SizeOfArray("product.images")
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")
While j < count_j
json.J = j
intVal = json.IntOf("product.images[i].variant_ids[j]")
j = j + 1
End While
i = i + 1
End While
i = 0
count_i = json.SizeOfArray("image.product.variant_ids")
While i < count_i
json.I = i
i = i + 1
End While
' 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": [
' ]
' }
' }
' }
Debug.WriteLine("Example Completed.")