I happened to have the same update order issue.
If you tried every possible solution found on the Internet, but no one worked, maybe the bug is from your server provider.
In my case, the problem comes from $curl function, which used frequently on opencart 2.0.
You may paste this php file in your admin/controller/sale/ and then type your url :http://YOURDOMAIN.com/admin/controller/sale/test.php
<?PHP
echo "a<br/>";
$curl = curl_init();
//http://YOURDOMAIN.com testing"
$aa='Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36 OPR/28.0.1750.48';
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
curl_setopt($curl, CURLOPT_USERAGENT, $aa);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FORBID_REUSE, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, 'http://YOURDOMAIN.com/index.php?route=api/login');
curl_setopt($curl, CURLOPT_POST, true);
$json = curl_exec($curl);
echo "server link to http://YOURDOMAIN.com/index.php?route=api/login <br/>";
echo "Error Message:<br/>";
print_r(curl_error($curl));
echo "<br/>";
echo "Response:";
echo "<br/>";
print_r($json);
echo "<br/>";
echo "<br/>";
echo "<br/>";
echo "<br/>";
curl_close($curl);
$curl = curl_init();
//http://google.com"
$aa='Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36 OPR/28.0.1750.48';
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
curl_setopt($curl, CURLOPT_USERAGENT, $aa);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FORBID_REUSE, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, 'http://google.com');
curl_setopt($curl, CURLOPT_POST, true);
$json = curl_exec($curl);
echo "server lint to http://google.com <br/>";
echo "Error Message:<br/>";
print_r(curl_error($curl));
echo "<br/>";
echo "Response:";
echo "<br/>";
print_r($json);
curl_close($curl);
?>
If your browser message doesn't show this
a server link to http://YOURDOMAIN.com/index.php?route=api/login Error
Message:
Response:
{"error":"\u8b66\u544a\uff1a\u4e0d\u5339\u914d\u7684\u7528\u6236\u540d\u6216\u5bc6\u78bc\u3002"}
Then you may ask your server provider to help you setting the server, because this means your $curl could not link to your localhost and could not retrieve data from your localhost.
Hope this will help you !!