【问题标题】:magento : how to add parameter with soap requestmagento:如何使用soap请求添加参数
【发布时间】:2015-10-19 06:43:19
【问题描述】:

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

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

【问题讨论】:

    标签: php api magento soap


    【解决方案1】:

    你需要这样称呼它

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

    有关功能检查类的更多信息

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

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

    【讨论】:

    • 它不工作的兄弟。我还是有同样的问题
    【解决方案2】:

    我设法使用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);
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-02
      • 2019-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多