VB.NET
VB.NET
effectconnect Create or Replace Product Catalog
See more effectconnect Examples
Use this call to create or replace a product catalog in EffectConnect. This is always a purge and replace action for the entire catalog.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/effconCreate.xml","utf-8")
Debug.WriteLine("length = " & sbXml.Length)
req.HttpVerb = "POST"
req.Path = uri
req.ContentType = "multipart/form-data"
success = req.AddStringForUpload("payload","effcon.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("POST")
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>Create</RequestAction>
' <RequestVersion>2.0</RequestVersion>
' <RequestIdentifier/>
' <ProcessedAt>2019-04-18T15:28:55+02:00</ProcessedAt>
' </Request>
' <Response>
' <Result>Success</Result>
' <ProductsCreateResponseContainer>
' <ProcessID><![CDATA[J048hgS4OkNn0JnH]]></ProcessID>
' </ProductsCreateResponseContainer>
' </Response>
' </ApiResponseContainer>
' Parsing the response...
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|ProductsCreateResponseContainer|ProcessID")