【问题标题】:Get multiple products info in a single SOAP request (magento api)在单个 SOAP 请求中获取多个产品信息(magento api)
【发布时间】:2014-08-03 06:48:42
【问题描述】:

我正在尝试使用 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);

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

【问题讨论】:

    标签: php magento soap


    【解决方案1】:

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

    【讨论】:

    • 你能给我一个代码示例来说明你的意思吗?两次传递 catelogProductList 是一个拼写错误,我已经编辑了帖子。
    猜你喜欢
    • 2012-03-13
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多