Magento Rest api 仅提供 10 个产品

问题描述 投票:0回答:3

我使用 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 个产品。

php magento product magento-rest-api
3个回答
5
投票

默认限制为 10。您可以通过以下方式突破限制:

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

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


1
投票

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


0
投票

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

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

根据我们的需要进行更改。

/**#@+
 * Collection page sizes
 */
const PAGE_SIZE_DEFAULT = 10;
const PAGE_SIZE_MAX     = 200;
/**#@-*/
© www.soinside.com 2019 - 2024. All rights reserved.