I am very new to SOAP request and I am trying to figure out how this works.
I am trying to make a request for a Sales Order Object. This is the wsdl code that I received:
<s:element name="Start">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="company" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="orders" type="tns:ArrayOfSalesOrdersSalesOrder" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfSalesOrdersSalesOrder">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="SalesOrdersSalesOrder" nillable="true">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" form="unqualified" name="CustomerNumber" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" form="unqualified" name="OrderNumber" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" form="unqualified" name="Currency" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" form="unqualified" name="CustomerComment" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" form="unqualified" name="OrderReference" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" form="unqualified" name="FirstName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" form="unqualified" name="LastName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" form="unqualified" name="Street" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" form="unqualified" name="ZipCode" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" form="unqualified" name="City" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" form="unqualified" name="Country" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" form="unqualified" name="Discount" type="s:decimal" />
<s:element minOccurs="0" maxOccurs="unbounded" form="unqualified" name="ChargeHeader">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" form="unqualified" name="Code" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" form="unqualified" name="Value" type="s:decimal" />
</s:sequence>
</s:complexType>
</s:element>
<s:element minOccurs="0" maxOccurs="unbounded" form="unqualified" name="Orderline">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" form="unqualified" name="PartNumber" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" form="unqualified" name="Qty" type="s:decimal" />
<s:element minOccurs="1" maxOccurs="1" form="unqualified" name="FreeIssue" type="s:boolean" />
<s:element minOccurs="1" maxOccurs="1" form="unqualified" name="Discount" type="s:decimal" />
<s:element minOccurs="0" maxOccurs="unbounded" form="unqualified" name="ChargeLine">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" form="unqualified" name="Code" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" form="unqualified" name="Value" type="s:decimal" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
I figured out I had to do something like the following:
$order = array(
'company' => '10',
'orders' => array(
'SalesOrdersSalesOrder' => array(
'CustomerNumber' => '12345234',
'OrderNumber' => '0000001',
'Currency' => 'EUR',
'CustomerComment' => 'Dit is de comment',
'FirstName' => 'Lex',
'LastName' => 'Test',
'Street' => 'Teststraat 12',
'ZipCode' => '1231df',
'City' => 'Testing',
'Country' => 'NL',
'Discount' => 11.11,
'ChargeHeader' => array(
'Code' => '001',
'Value' => 99.99
),
'OrderLine' => array (
'PartNumber' => '01-001-000-42',
'Qty' => 1,
'FreeIssue' => false,
'Discount' => 1.11,
'ChargeLine' => array(
'Code' => '001',
'Value' => 33.33
)
),
'OrderLine' => array (
'PartNumber' => '01-001-000-42',
'Qty' => 1,
'FreeIssue' => false,
'Discount' => 1.11,
'ChargeLine' => array(
'Code' => '001',
'Value' => 33.33
)
),
'OrderLine' => array (
'PartNumber' => '01-001-000-42',
'Qty' => 1,
'FreeIssue' => false,
'Discount' => 1.11,
'ChargeLine' => array(
'Code' => '001',
'Value' => 33.33
)
)
)
)
);
However when I try to post this to the Client i get the following response back:
The SalesOrder element has incomplete content. List of expected modular elements: ChargeHeader, Orderline.
In the wsdl it sais the following about ChargeHeader:
<s:element minOccurs="0" maxOccurs="unbounded" form="unqualified" name="Orderline">
<s:complexType>
So I was wondering how to make the following work? I thought a complexType was an array but it's probably something else.
All help is appreciated.