Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php magento:如何使用soap请求添加参数_Php_Api_Magento_Soap - Fatal编程技术网

Php magento:如何使用soap请求添加参数

Php magento:如何使用soap请求添加参数,php,api,magento,soap,Php,Api,Magento,Soap,我是Magento新手。我尝试使用带有父类别id的Magento SOAP API调用类别级别。我使用了以下代码: <?php $proxy = new SoapClient('http://domain/index.php/api/soap/?wsdl'); $session = $proxy->login('user', 'password'); $result = $proxy->call($session,'catalog_category.level'); echo

我是Magento新手。我尝试使用带有父类别id的Magento SOAP API调用类别级别。我使用了以下代码:

<?php
$proxy = new SoapClient('http://domain/index.php/api/soap/?wsdl');
$session = $proxy->login('user', 'password');
$result = $proxy->call($session,'catalog_category.level');
echo json_encode($result);
?>
$result = $proxy->call($session,'catalog_category.level',12);
<?php
$proxy = new SoapClient('http://domain/index.php/api/soap/?wsdl');
$session = $proxy->login('user', 'password');
$result = $proxy->call($session,'catalog_category.tree');
echo json_encode($result);
?>
这不起作用:

$arguments = array( 'parentCategory' => 12);
$result = $proxy->call($session,'catalog_category.level',$arguments);
这也不起作用:

$arguments = array( 'parentCategory' => 12);
$result = $proxy->call($session,'catalog_category.level',$arguments);
然后,我尝试使用以下代码调用category tree:

<?php
$proxy = new SoapClient('http://domain/index.php/api/soap/?wsdl');
$session = $proxy->login('user', 'password');
$result = $proxy->call($session,'catalog_category.level');
echo json_encode($result);
?>
$result = $proxy->call($session,'catalog_category.level',12);
<?php
$proxy = new SoapClient('http://domain/index.php/api/soap/?wsdl');
$session = $proxy->login('user', 'password');
$result = $proxy->call($session,'catalog_category.tree');
echo json_encode($result);
?>

它显示了整个类别树,所以这意味着API正在工作,但每当我试图传递一个参数时,它就会显示服务器未找到错误


谁能告诉我如何在请求中传递参数。

您需要像这样调用它

$proxy->call($sessionId, 'category.level', array(null, null, 12));
有关函数检查类的更多信息

Mage_Catalog_Model_Category_Api 

function level($website = null, $store = null, $categoryId = null)

如果您想传递特定的网站和存储,您可以传递它而不是null参数。

我使用soapv2获得输出。但与soapv1相比,它速度较慢,但它提供了所需的输出。我用来传递参数的代码如下所示

 <?php
$proxy = new SoapClient('http://domain/index.php/api/v2_soap/?wsdl=1');
$session = $proxy->login((object)array('username' => 'user', 'apiKey' => 'password'));
$result = $proxy->catalogCategoryTree((object)array('sessionId' => $session->result, 'parentId' => '12'));
echo json_encode($result);
?>

它不工作。我还是有同样的问题