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

时间:2015-10-19 06:43:19

标签: 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 json_encode($result);
?>

对于上述代码&#34;默认类别&#34;细节即将到来,我尝试使用以下代码调用其他类别:

$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正在运行,但每当我尝试传递参数时,它都显示服务器未找到错误。

任何人都可以告诉我如何通过请求传递参数。

2 个答案:

答案 0 :(得分:1)

您需要将其称为

$proxy->call($sessionId, 'category.level', array(null, null, 12));

有关函数检查类

的更多信息
Mage_Catalog_Model_Category_Api 

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

如果你想传递特定的网站和商店,你可以传递它而不是空参数。

答案 1 :(得分:0)

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

<script src="https://maps.googleapis.com/maps/api/js?signed_in=true&libraries=places"></script>
<div id="map"></div>
<pre id="output"></pre>