If you are getting the following error during Magento order sync:


"ERROR: Magento Order Sync - Could not download order info Magento - siteURL - Error: Response contains string value where struct expected."


Then the issue is with the response from your Magento server. If the Magento version on your server is 1.9.3, then Magento soap API will not return the order item information correctly. This has been reported on Magento forums and will get fixed by Magento in one of the updates on their end. We do not know when it is due, so we recommend checking out this solution offered on Magento forums:


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

 

public function processingMethodResult($result)
{
    if (is_array($result)) {
        foreach ($result as &$row) {
            if (!is_null($row) && !is_bool($row) && !is_numeric($row)) {
                if (is_array($row)) {
                    $row = $this->processingMethodResult($row);
                } else {
                    $row = $this->processingRow($row);
                }
            }
        }
    } else {
        if (!is_null($result) && !is_bool($result) && !is_numeric($result)) {
            $result = $this->processingRow($result);
        }
    }
    return $result;
}