VBScript
VBScript
Upsert Catalog Object
See more Square Examples
Creates or updates the target CatalogObject.Chilkat VBScript Downloads
Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
'Create a Unicode (utf-16) output text file.
Set outFile = fso.CreateTextFile("output.txt", True, True)
success = 0
' This example assumes the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
set http = CreateObject("Chilkat.Http")
' Implements the following CURL command:
' curl https://connect.squareup.com/v2/catalog/object \
' -X POST \
' -H 'Square-Version: 2020-07-22' \
' -H 'Authorization: Bearer ACCESS_TOKEN' \
' -H 'Content-Type: application/json' \
' -d '{
' "idempotency_key": "af3d1afc-7212-4300-b463-0bfc5314a5ae",
' "object": {
' "type": "ITEM",
' "id": "#Cocoa",
' "item_data": {
' "name": "Cocoa",
' "description": "Hot chocolate",
' "abbreviation": "Ch"
' }
' }
' }'
' Use the following online tool to generate HTTP code from a CURL command
' Convert a cURL Command to HTTP Source Code
' Use this online tool to generate code from sample JSON:
' Generate Code to Create JSON
' The following JSON is sent in the request body.
' {
' "idempotency_key": "af3d1afc-7212-4300-b463-0bfc5314a5ae",
' "object": {
' "type": "ITEM",
' "id": "#Cocoa",
' "item_data": {
' "name": "Cocoa",
' "description": "Hot chocolate",
' "abbreviation": "Ch"
' }
' }
' }
set json = CreateObject("Chilkat.JsonObject")
success = json.UpdateString("idempotency_key","af3d1afc-7212-4300-b463-0bfc5314a5ae")
success = json.UpdateString("object.type","ITEM")
success = json.UpdateString("object.id","#Cocoa")
success = json.UpdateString("object.item_data.name","Cocoa")
success = json.UpdateString("object.item_data.description","Hot chocolate")
success = json.UpdateString("object.item_data.abbreviation","Ch")
' Adds the "Authorization: Bearer ACCESS_TOKEN" header.
http.AuthToken = "ACCESS_TOKEN"
http.SetRequestHeader "Square-Version","2020-07-22"
' This example uses the sandbox: connect.squareupsandbox.com
' Production should use connect.squareup.com
set resp = CreateObject("Chilkat.HttpResponse")
success = http.HttpJson("POST","https://connect.squareupsandbox.com/v2/catalog/object",json,"application/json",resp)
If (success = 0) Then
outFile.WriteLine(http.LastErrorText)
WScript.Quit
End If
set sbResponseBody = CreateObject("Chilkat.StringBuilder")
success = resp.GetBodySb(sbResponseBody)
set jResp = CreateObject("Chilkat.JsonObject")
success = jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = 0
outFile.WriteLine("Response Body:")
outFile.WriteLine(jResp.Emit())
respStatusCode = resp.StatusCode
outFile.WriteLine("Response Status Code = " & respStatusCode)
If (respStatusCode >= 400) Then
outFile.WriteLine("Response Header:")
outFile.WriteLine(resp.Header)
outFile.WriteLine("Failed.")
WScript.Quit
End If
' Sample JSON response:
' (Sample code for parsing the JSON response is shown below)
' {
' "catalog_object": {
' "type": "ITEM",
' "id": "7SB3ZQYJ5GDMVFL7JK46JCHT",
' "updated_at": "2016-11-16T22:32:42.996Z",
' "version": 1479335562996,
' "is_deleted": false,
' "item_data": {
' "name": "Cocoa",
' "description": "Hot chocolate",
' "abbreviation": "Ch"
' }
' },
' "id_mappings": [
' {
' "client_object_id": "#Cocoa",
' "object_id": "7SB3ZQYJ5GDMVFL7JK46JCHT"
' }
' ]
' }
' Sample code for parsing the JSON response...
' Use the following online tool to generate parsing code from sample JSON:
' Generate Parsing Code from JSON
catalog_objectType = jResp.StringOf("catalog_object.type")
catalog_objectId = jResp.StringOf("catalog_object.id")
catalog_objectUpdated_at = jResp.StringOf("catalog_object.updated_at")
catalog_objectVersion = jResp.IntOf("catalog_object.version")
catalog_objectIs_deleted = jResp.BoolOf("catalog_object.is_deleted")
catalog_objectItem_dataName = jResp.StringOf("catalog_object.item_data.name")
catalog_objectItem_dataDescription = jResp.StringOf("catalog_object.item_data.description")
catalog_objectItem_dataAbbreviation = jResp.StringOf("catalog_object.item_data.abbreviation")
i = 0
count_i = jResp.SizeOfArray("id_mappings")
Do While i < count_i
jResp.I = i
client_object_id = jResp.StringOf("id_mappings[i].client_object_id")
object_id = jResp.StringOf("id_mappings[i].object_id")
i = i + 1
Loop
outFile.Close