PowerShell
PowerShell
effectconnect Product Update
See more effectconnect Examples
Use this call to update a product (f.e. stock or price) in EffectConnect.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$uri = "/products"
$apiVersion = "2.0"
$http = New-Object Chilkat.Http
$req = New-Object 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.
$dt = New-Object Chilkat.CkDateTime
$dt.SetFromCurrentSystemTime()
$timestamp = $dt.GetAsTimestamp($true)
$req.AddHeader("TIME",$timestamp)
$("timestamp = " + $timestamp)
$sbXml = New-Object Chilkat.StringBuilder
$success = $sbXml.LoadFile("qa_data/xml/effectconnect/effconUpdate.xml","utf-8")
$("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 -eq $false) {
$($req.LastErrorText)
exit
}
# Build a string-to-sign and sign it using our effectconnect private key
$sbStringToSign = New-Object Chilkat.StringBuilder
$sbStringToSign.AppendInt($sbXml.Length)
$sbStringToSign.Append("PUT")
$sbStringToSign.Append($uri)
$sbStringToSign.Append($apiVersion)
$sbStringToSign.Append($timestamp)
$crypt = New-Object 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()))
$resp = New-Object Chilkat.HttpResponse
$success = $http.HttpSReq("submit.effectconnect.com",443,$true,$req,$resp)
if ($success -eq $false) {
$($http.LastErrorText)
exit
}
$("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.
$xmlResp = New-Object Chilkat.Xml
$xmlResp.LoadXml($resp.BodyStr)
$("response body:")
$($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")