Magento:如何添加参数与soap请求


magento : how to add parameter with soap request

我是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);

这是不工作:

$arguments = array( 'parentCategory' => 12);
$result = $proxy->call($session,'catalog_category.level',$arguments);

这也不工作:

然后我尝试使用以下代码调用类别树:

<?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);
?>