Magento rest api 只提供 10 件产品
Magento rest api is giving only 10 products
我正在使用 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 个产品。
默认限制为 10。您可以按如下方式通过限制:
您可以通过传递 limit 参数来定义响应中返回的项目的限制。默认情况下,返回 10 个项目,最大数量为 100 个项目。您还可以通过传递 page 参数来定义页码。示例:
我们可以设置产品响应的默认数量和最大产品数量。
转到app/code/core/mage/Api2/Model/Resource。php
根据需要更改。
/**#@+
* Collection page sizes
*/
const PAGE_SIZE_DEFAULT = 10;
const PAGE_SIZE_MAX = 200;
/**#@-*/
我想从上面的评论中补充。您应该将 app/code/core/mage/Api2/Model/Resource.php 复制到 app/code/local/mage/Api2/Model/Resource.php 并在本地文件中进行更改。您应该 永远 编辑核心 Magento 文件,否则,如果您升级您的 Magento 系统,您将丢失您的更改。
我正在使用 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 个产品。
默认限制为 10。您可以按如下方式通过限制:
您可以通过传递 limit 参数来定义响应中返回的项目的限制。默认情况下,返回 10 个项目,最大数量为 100 个项目。您还可以通过传递 page 参数来定义页码。示例:
我们可以设置产品响应的默认数量和最大产品数量。
转到app/code/core/mage/Api2/Model/Resource。php
根据需要更改。
/**#@+
* Collection page sizes
*/
const PAGE_SIZE_DEFAULT = 10;
const PAGE_SIZE_MAX = 200;
/**#@-*/
我想从上面的评论中补充。您应该将 app/code/core/mage/Api2/Model/Resource.php 复制到 app/code/local/mage/Api2/Model/Resource.php 并在本地文件中进行更改。您应该 永远 编辑核心 Magento 文件,否则,如果您升级您的 Magento 系统,您将丢失您的更改。