VB.NET
VB.NET
effectconnect Product Update
See more effectconnect Examples
Use this call to update a product (f.e. stock or price) in EffectConnect.Chilkat VB.NET Downloads
Dim success As Boolean = False
' This example assumes the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
Dim uri As String = "/products"
Dim apiVersion As String = "2.0"
Dim http As New Chilkat.Http
Dim req As New 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.
Dim dt As New Chilkat.CkDateTime
dt.SetFromCurrentSystemTime()
Dim timestamp As String = dt.GetAsTimestamp(True)
req.AddHeader("TIME",timestamp)
Debug.WriteLine("timestamp = " & timestamp)
Dim sbXml As New Chilkat.StringBuilder
success = sbXml.LoadFile("qa_data/xml/effectconnect/effconUpdate.xml","utf-8")
Debug.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 = False) Then
Debug.WriteLine(req.LastErrorText)
Exit Sub
End If
' Build a string-to-sign and sign it using our effectconnect private key
Dim sbStringToSign As New Chilkat.StringBuilder
sbStringToSign.AppendInt(sbXml.Length)
sbStringToSign.Append("PUT")
sbStringToSign.Append(uri)
sbStringToSign.Append(apiVersion)
sbStringToSign.Append(timestamp)
Dim crypt As New Chilkat.Crypt2
crypt.MacAlgorithm = "hmac"
crypt.HashAlgorithm = "sha512"
crypt.EncodingMode = "base64"
' Use your effectconnect private key here:
crypt.SetMacKeyString("PRIVATE_KEY")
req.AddHeader("SIGNATURE",crypt.MacStringENC(sbStringToSign.GetAsString()))
Dim resp As New Chilkat.HttpResponse
success = http.HttpSReq("submit.effectconnect.com",443,True,req,resp)
If (success = False) Then
Debug.WriteLine(http.LastErrorText)
Exit Sub
End If
Debug.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.
Dim xmlResp As New Chilkat.Xml
xmlResp.LoadXml(resp.BodyStr)
Debug.WriteLine("response body:")
Debug.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>
'
Dim tagPath As String
Dim RequestType As String
Dim RequestAction As String
Dim RequestVersion As String
Dim ProcessedAt As String
Dim Result As String
Dim ProcessID As String
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")