Я знаю, что это старый вопрос, но я боролся с этим. Я создал свою собственную конечную точку API SOAP, которая выполняет те же функции, что и функция 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 и made_at отсутствуют в ответе, а список не упорядочен по update_at, поэтому я добавил это.