我正在使用SOAP来使用Magento 1 API。它在我尝试使用sales_order.info时有效。但是当我试图收到销售清单时," NULL"退回。到目前为止,我只使用了Magento的示例代码,这就是为什么我想知道为什么它不起作用。
$mage_url = 'https://myhost/api/?wsdl';
$mage_user = '######';
$mage_api_key = '#######';
$client = new SoapClient( $mage_url );
$session = $client->login( $mage_user, $mage_api_key );
//WORKING:
$sale = $client->call($session, 'sales_order.info', '416203797');
$firstname = $sale['customer_firstname'];
echo $firstname;
//NOT WORKING:
$result = $client->call($session, 'sales_order.list');
var_dump ($result); <-- (result is 'NULL')
有人知道为什么吗?
答案 0 :(得分:0)
检查以下答案并根据您的要求进行更改。我为我的API做了这个代码,它的工作非常完美。这里我有“sales_order.list”和“sales_order.info”的代码。您可以根据自己的要求获取代码。
<?php
error_reporting(E_ALL);
ini_set(“display_errors”,1);
$config=array();
$config["hostname"] = "www.yoursitename.com";
$config["login"] = "username";
$config["password"] = "password";
$proxy = new SoapClient('http://'.$config["hostname"].'/index.php/api/soap/?wsdl', array('trace'=>1));
$sessionId = $proxy->login($config["login"], $config["password"]);
$result = array();
$orderlist = ($proxy->call($sessionId, 'sales_order.list', array(array('customer_id'=>array('eq'=>$_REQUEST['customer_id'])))));
$order = ($proxy->call($sessionId, 'sales_order.info', array(array('order_info'=>array('eq'=>$_REQUEST['order'])))));
//echo '<pre>';
//print_r($orderlist);
//print_r($order);
//echo '</pre>';
//$result = json_encode($orderlist);
if($orderlist){
$result['success'] = true;
$result['available'] = $orderlist;
$result['available'] = $order;
}
else{
$result['failed'] = false;
$result['not-available'] = error message;
}
echo json_encode($result);
?>