Classic ASP
Classic ASP
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 Classic ASP Downloads
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
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 = Server.CreateObject("Chilkat.Http")
set req = Server.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 = Server.CreateObject("Chilkat.CkDateTime")
success = dt.SetFromCurrentSystemTime()
timestamp = dt.GetAsTimestamp(1)
req.AddHeader "TIME",timestamp
Response.Write "<pre>" & Server.HTMLEncode( "timestamp = " & timestamp) & "</pre>"
set sbXml = Server.CreateObject("Chilkat.StringBuilder")
success = sbXml.LoadFile("qa_data/xml/effectconnect/effconCreate.xml","utf-8")
Response.Write "<pre>" & Server.HTMLEncode( "length = " & sbXml.Length) & "</pre>"
req.HttpVerb = "POST"
req.Path = uri
req.ContentType = "multipart/form-data"
success = req.AddStringForUpload("payload","effcon.xml",sbXml.GetAsString(),"utf-8")
If (success = 0) Then
Response.Write "<pre>" & Server.HTMLEncode( req.LastErrorText) & "</pre>"
Response.End
End If
' Build a string-to-sign and sign it using our effectconnect private key
set sbStringToSign = Server.CreateObject("Chilkat.StringBuilder")
success = sbStringToSign.AppendInt(sbXml.Length)
success = sbStringToSign.Append("POST")
success = sbStringToSign.Append(uri)
success = sbStringToSign.Append(apiVersion)
success = sbStringToSign.Append(timestamp)
set crypt = Server.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 = Server.CreateObject("Chilkat.HttpResponse")
success = http.HttpSReq("submit.effectconnect.com",443,1,req,resp)
If (success = 0) Then
Response.Write "<pre>" & Server.HTMLEncode( http.LastErrorText) & "</pre>"
Response.End
End If
Response.Write "<pre>" & Server.HTMLEncode( "response status code = " & resp.StatusCode) & "</pre>"
' 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 = Server.CreateObject("Chilkat.Xml")
success = xmlResp.LoadXml(resp.BodyStr)
Response.Write "<pre>" & Server.HTMLEncode( "response body:") & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( xmlResp.GetXml()) & "</pre>"
' 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...
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")
%>
</body>
</html>