cancel
Showing results for 
Search instead for 
Did you mean: 

After upgrade from 1.9.2.2 to 1.9.3 soap v1 api not returning sales order info items properly

SOLVED
Highlighted

After upgrade from 1.9.2.2 to 1.9.3 soap v1 api not returning sales order info items properly

Soap response showing items as array instead of salesOrderItemEntity

 

getting this in soap response:

<item>
<key xsi:type="xsd:string">items</key>
<value SOAP-ENC:arrayType="xsd:string[2]" xsi:type="SOAP-ENC:Array">
<item xsi:type="xsd:string">Array</item>
<item xsi:type="xsd:string">Array</item>
</value>
</item>

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted

Re: After upgrade from 1.9.2.2 to 1.9.3 soap v1 api not returning sales order info items properly

Just an update, that I fixed the issue.  I think it was the new release recently put out for 1.9.3.  There was an if statement that didn't exclude arrays before sending the row to the processingRow function.  Looks like processingRow was converting the array to a string.

 

In app/code/core/Mage/Api/Model/Server/Handler/Abstract.php (see before and after below)

 

    public function processingMethodResult(array $result)
    {
        foreach ($result as &$row) {

            /*before */

            //if (!is_null($row) && !is_bool($row) && !is_numeric($row)) {

           /*after*/
            if (!is_null($row) && !is_bool($row) && !is_numeric($row) && !is_array($row)) {
                $row = $this->processingRow($row);
            }
        }
        return $result;
    }

View solution in original post

1 REPLY 1
Highlighted

Re: After upgrade from 1.9.2.2 to 1.9.3 soap v1 api not returning sales order info items properly

Just an update, that I fixed the issue.  I think it was the new release recently put out for 1.9.3.  There was an if statement that didn't exclude arrays before sending the row to the processingRow function.  Looks like processingRow was converting the array to a string.

 

In app/code/core/Mage/Api/Model/Server/Handler/Abstract.php (see before and after below)

 

    public function processingMethodResult(array $result)
    {
        foreach ($result as &$row) {

            /*before */

            //if (!is_null($row) && !is_bool($row) && !is_numeric($row)) {

           /*after*/
            if (!is_null($row) && !is_bool($row) && !is_numeric($row) && !is_array($row)) {
                $row = $this->processingRow($row);
            }
        }
        return $result;
    }

View solution in original post