Magento rest api仅提供10种产品

时间:2015-02-24 05:42:38

标签: php api rest magento product

我使用REST来调用Magento产品列表,但它只显示了10个产品而不是所有产品。

任何人都可以指导,因为可能会出现此问题吗?

这是我用来调用其余api的代码: -

$url = 'magentohost url';
$callbackUrl = $url . "oauth_admin.php";
$temporaryCredentialsRequestUrl = $url . "oauth/initiate?oauth_callback=" . urlencode($callbackUrl);
$adminAuthorizationUrl = $url . 'admin/oauth_authorize';
$accessTokenRequestUrl = $url . 'oauth/token';
$apiUrl = $url . 'api/rest';
$consumerKey = 'consumer_key';
$consumerSecret = 'consumer_secret';
$token = 'token';
$secret = 'token_secret';

try {
    $oauthClient = new OAuth($consumerKey, $consumerSecret, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_AUTHORIZATION);
    $oauthClient->setToken($token, $secret);
    $resourceUrl = "$apiUrl/products";
    $oauthClient->fetch($resourceUrl, array(), 'GET', array('Content-Type' => 'application/json', 'Accept' => 'application/json'));
    $productsList = json_decode($oauthClient->getLastResponse());
    echo '<pre>';
    print_r($productsList);
}
catch(Exception $e) {
    echo '<pre>';
    print_r($e);
}

当我想输出所有产品时,它给了我正确的输出,但从不超过10种产品。

3 个答案:

答案 0 :(得分:5)

默认情况下,限制为10.您可以按如下方式传递限制:

您可以通过传递limit参数来定义响应中返回的项目限制。默认情况下,返回10个项目,最大数量为100个项目。您还可以通过传递page参数来定义页码。例如:

http://magentohost/api/rest/products?page=2&limit=20

答案 1 :(得分:1)

我想从上面的评论中补充一下。您应该将app / code / core / mage / Api2 / Model / Resource.php复制到app / code / local / mage / Api2 / Model / Resource.php并在本地文件中进行更改。您应 从不 编辑核心Magento文件,否则,如果升级Magento系统,则会丢失更改。

答案 2 :(得分:0)

我们可以设置产品响应的默认数量和最大产品数量。

转到app / code / core / mage / Api2 / Model / Resource.php

根据我们的需要进行更改。      /的#@ +      *收集页面大小       /     const PAGE_SIZE_DEFAULT = 10;     const PAGE_SIZE_MAX = 200;     / #@ - /