2010-04-29 52 views
2

我正在爲我的商店創建Web服務。我正在使用magento API從商店收集產品列表。但它顯示了所有500條記錄。我希望每頁有25條記錄。在API調用中添加什麼?或者什麼過濾器將適用於此?如何在Magento API調用中添加限制選項

//創建皁對象 $代理=新SoapClient的( 'http://localhsot/magento/api/soap/?wsdl');

// create authorized session id using api user name and api key 
// $sessionId = $proxy->login('apiUser', 'apiKey'); 
$sessionId = $proxy->login('test_admin', '12345678'); 

    $filters = array(


    ); 


// Get list of product 
$productlist = $proxy->call($sessionId, 'product.list', array($filters)); 

print_r($productlist); 

回答

-1

我不知道這一點,但你可以試試這個,因爲API正在與收藏,這是限制的集合大小

$filters = array(
    'setPageSize' => 10 
); 
0

沒有工作的方式,可以你限制它通過像這樣的ID:

$filters = array('id'=>array("gteq"=>1), 'id'=>array("lteq"=>1000)); 

那樣你可以添加一些分頁?

0

我知道這是一個古老的問題,但我努力與此。我創建了自己的SOAP API端點,它與默認的catalogProductList函數完全相同,但有一個額外的參數。請參見下面的代碼:

$collection = Mage::getModel('catalog/product')->getCollection() 
    ->addStoreFilter($this->_getStoreId($store)) 
    ->addAttributeToSelect('name'); 
if($limit) { 
    $collection->setOrder('updated_at', 'ASC'); 
    $collection->setPageSize($limit); 
} 
/** @var $apiHelper Mage_Api_Helper_Data */ 
$apiHelper = Mage::helper('api'); 
$filters = $apiHelper->parseFilters($filters, $this->_filtersMap); 
try { 
    foreach ($filters as $field => $value) { 
     $collection->addFieldToFilter($field, $value); 
    } 
} catch (Mage_Core_Exception $e) { 
    $this->_fault('filters_invalid', $e->getMessage()); 
} 
$result = array(); 
foreach ($collection as $product) { 
    $result[] = array(
     'product_id' => $product->getId(), 
     'sku'  => $product->getSku(), 
     'name'  => $product->getName(), 
     'set'  => $product->getAttributeSetId(), 
     'type'  => $product->getTypeId(), 
     'category_ids' => $product->getCategoryIds(), 
     'website_ids' => $product->getWebsiteIds(), 
     'updated_at' => $product->getUpdatedAt(), 
     'created_at' => $product->getCreatedAt() 
    ); 
} 
return $result; 

從那裏我們保留最後的updated_at值的跟蹤和使用,作爲一個過濾器,以獲得下一個[LIMIT]項目。默認情況下,updated_at和created_at不在響應中,並且列表不會被updated_at排序,所以我已經添加了這個。

相關問題