I am struggling to get to grips with creating the "xml" data for a PHP based SOAP client. I need to produce something like the following:
<SOAP-ENV:Body>
<ns1:check_stock_level>
<ns1:api_credentials>
<ns1:username>*****</ns1:username>
<ns1:password>***</ns1:password>
</ns1:api_credentials>
<productsku>ABC-123</productsku>
</ns1:check_stock_level>
</SOAP-ENV:Body>
I can create the authorisation section, but my code fails to create the productsku
- the code looks like this:
$client = new SoapClient("https://www.example.net/wh_api.asmx?WSDL",array("trace"=> 1, "exceptions" => 0));
$auth = array ('api_credentials' => array ('username'=>'******', 'password'=>'******'));
$sku = array('productsku'=>'ABC-123');
$result = $client->check_stock_level($auth, $sku);
which produces this:
<SOAP-ENV:Body>
<ns1:check_stock_level>
<ns1:api_credentials>
<ns1:username>*****</ns1:username>
<ns1:password>***</ns1:password>
</ns1:api_credentials>
</ns1:check_stock_level>
<param1>
<item>
<key>product_sku</key>
<value>ABC-123</value>
</item>
</param1>
</SOAP-ENV:Body>
Where the productsku
is outside of the <check_stock_level>
tag set and is surrounded by extra tags.
Most examples I can find on SOAP use NuSOAP but I want to use the native pHP SOAP functionality. Can anyone give me any pointers?