Sample code for 30+ languages & platforms
VBScript

effectconnect Product Update

See more effectconnect Examples

Use this call to update a product (f.e. stock or price) in EffectConnect.

Chilkat VBScript Downloads

VBScript
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.

uri = "/products"
apiVersion = "2.0"

set http = CreateObject("Chilkat.Http")
set req = CreateObject("Chilkat.HttpRequest")

' Use your effectconnect public key here...
req.AddHeader "KEY","PUBLIC_KEY"
req.AddHeader "VERSION",apiVersion
req.AddHeader "URI",uri
req.AddHeader "RESPONSETYPE","XML"
req.AddHeader "RESPONSELANGUAGE","en"

' Get the current date/time in timestamp format.
set dt = CreateObject("Chilkat.CkDateTime")
success = dt.SetFromCurrentSystemTime()
timestamp = dt.GetAsTimestamp(1)

req.AddHeader "TIME",timestamp
outFile.WriteLine("timestamp = " & timestamp)

set sbXml = CreateObject("Chilkat.StringBuilder")
success = sbXml.LoadFile("qa_data/xml/effectconnect/effconUpdate.xml","utf-8")
outFile.WriteLine("length = " & sbXml.Length)

req.HttpVerb = "PUT"
req.Path = uri
req.ContentType = "multipart/form-data"
success = req.AddStringForUpload("payload","effconUpdate.xml",sbXml.GetAsString(),"utf-8")
If (success = 0) Then
    outFile.WriteLine(req.LastErrorText)
    WScript.Quit
End If

' Build a string-to-sign and sign it using our effectconnect private key
set sbStringToSign = CreateObject("Chilkat.StringBuilder")
success = sbStringToSign.AppendInt(sbXml.Length)
success = sbStringToSign.Append("PUT")
success = sbStringToSign.Append(uri)
success = sbStringToSign.Append(apiVersion)
success = sbStringToSign.Append(timestamp)

set crypt = CreateObject("Chilkat.Crypt2")
crypt.MacAlgorithm = "hmac"
crypt.HashAlgorithm = "sha512"
crypt.EncodingMode = "base64"
' Use your effectconnect private key here:
success = crypt.SetMacKeyString("PRIVATE_KEY")
req.AddHeader "SIGNATURE",crypt.MacStringENC(sbStringToSign.GetAsString())

set resp = CreateObject("Chilkat.HttpResponse")
success = http.HttpSReq("submit.effectconnect.com",443,1,req,resp)
If (success = 0) Then
    outFile.WriteLine(http.LastErrorText)
    WScript.Quit
End If

outFile.WriteLine("response status code = " & resp.StatusCode)

' Examine the response.  The response status code can be 200 for both errors and success.
' The success or error is based on the XML returned in the response body.
set xmlResp = CreateObject("Chilkat.Xml")
success = xmlResp.LoadXml(resp.BodyStr)

outFile.WriteLine("response body:")
outFile.WriteLine(xmlResp.GetXml())

' A sample response:

' <?xml version="1.0" encoding="utf-8"?>
' <ApiResponseContainer>
'     <Request>
'         <RequestType>Products</RequestType>
'         <RequestAction>Update</RequestAction>
'         <RequestVersion>2.0</RequestVersion>
'         <RequestIdentifier/>
'         <ProcessedAt>2019-04-18T15:37:32+02:00</ProcessedAt>
'     </Request>
'     <Response>
'         <Result>Success</Result>
'         <ProductsUpdateResponseContainer>
'             <ProcessID><![CDATA[f81ngzD2S7gooFk3]]></ProcessID>
'         </ProductsUpdateResponseContainer>
'     </Response>
' </ApiResponseContainer>
' 

RequestType = xmlResp.GetChildContent("Request|RequestType")
RequestAction = xmlResp.GetChildContent("Request|RequestAction")
RequestVersion = xmlResp.GetChildContent("Request|RequestVersion")
ProcessedAt = xmlResp.GetChildContent("Request|ProcessedAt")
Result = xmlResp.GetChildContent("Response|Result")
ProcessID = xmlResp.GetChildContent("Response|ProductsUpdateResponseContainer|ProcessID")

outFile.Close