Topic: PHP examples
Hi,
These are working for me, feel free to use them at your own risk
class MSSoapClient extends SoapClient {
private $namespace;
function __doRequest($request, $location, $action, $version) {
$request = preg_replace('/<ns1:(\w+)/', '<$1 xmlns="'.$this->namespace.'"', $request, 1);
$request = preg_replace('/<ns1:(\w+)/', '<$1', $request);
$request = str_replace(array('/ns1:', 'xmlns:ns1="'.$this->namespace.'"'), array('/', ''), $request);
// parent call
return parent::__doRequest($request, $location, $action, $version);
}
function setNamespace($sNamespace)
{
$this->namespace=$sNamespace;
}
}
To make a new customer - I'm only you can extend the function to add other details to the record.
function newKashflowCustomer($soapClient,$idAccount,$name,$address,$town,$postcode,$country,$email)
{
//returns customer id if ok else 0
$today = date("Y-m-d",mktime());
$customerArray = array(
"CustomerID"=>"",
"Code"=>"",
"Name"=>"$name",
"Contact"=>"",
"Telephone"=>"",
"Mobile"=>"",
"Fax"=>"",
"Email"=>"$email",
"Address1"=>"$address",
"Address2"=>"",
"Address3"=>"$town",
"Address4"=>"$country",
"Postcode"=>"$postcode",
"Website"=>"",
"EC"=>"0",
"Notes"=>"",
"Source"=>"",
"Discount"=>"0",
"ShowDiscount"=>"0",
"PaymentTerms"=>"0",
"ExtraText1"=>"1",
"ExtraText2"=>"1",
"CheckBox1"=>"1",
"CheckBox2"=>"1",
"Created"=>"$today",
"Updated"=>"$today");
$args = array ("UserName"=>"your username here", "Password"=>"your password here","custr"=>$customerArray);
$oResponse = $soapClient->InsertCustomer($args);
//handle any errors
if($oResponse->Status != "OK")
{
echo $oResponse->StatusDetail;
$return = 0;
}
else
{
$id = $oResponse->InsertCustomerResult;
$return = $id;
}
return $return;
}