在单个SOAP请求中获取多个产品信息(magento api)

时间:2014-08-02 11:04:47

标签: php magento soap

我试图通过catalogProductList(soap v2)从Magento API获取产品,这是我的功能。

public function get_products() {
    $products = array();
    $login = $this->login_info();
    $proxy = new SoapClient($login['url']);
    $sessionId = $proxy->login($login['user'], $login['pass']);

    $result = $proxy->catalogProductList($sessionId);

    foreach($result as $value) {
        $products[] = $proxy->catalogProductInfo($sessionId, $value->product_id);   
    }

    echo "<pre>";
    var_dump($products);
    echo "</pre>";
}

然而,由于请求它在循环中,它将为每个产品提供对Magento API的请求。

我想知道是否有解决方案可以在同一个请求中获取多个产品信息(基于提供的product_id)。我认为每个请求可能有50或100个产品信息会减少获得所有产品的时间。

我在http://www.magentocommerce.com/api/soap/introduction.html

找到了
$params = array('filter' => array(
   array('key' => 'status', 'value' => 'pending'),
   array('key' => 'customer_is_guest', 'value' => '1')
));
$result = $client->salesOrderList($sessionId, $params);

但是从我的理解来看,它更多的是过滤产品,所以我不知道它是否有太大帮助。

1 个答案:

答案 0 :(得分:0)

看起来你正在调用catalogProductList两次,第一次在循环之外,第二次在循环中传递无效参数,doc here显示你只需要在传递会话后使用该方法如果返回的结果catalogProductEntity不够,你可以传递两个额外的可选参数(过滤器数组和商店视图id或代码),你可以覆盖API的那一部分,添加额外的产品信息,例如媒体图像。