Intereting Posts
Итерации через определенное дерево каталогов и сохранение всех .ttf-файлов в массив в PHP Получите эти выходные в php? PHP не может получить доступ к защищенной ошибке свойства Как установить upload_max_filesize в .htaccess? PHP – Домен для IP-адресов Перенаправление PHP после завершения формы Рекурсивно менять ключи в массиве Неустранимая ошибка: Декларация .. должна быть совместима с .. PHP Yii: Как управлять видео при использовании расширения multuploadfiles PHP: получение «использования неопределенного константы COOKIE_LOGIN», как я могу это исправить? как мне показать все .jpg картинки в папке, но я хочу только фотографии с сегодняшнего дня Ячейки в сетке, пересекаемые линией (PHP) Проверьте, существует ли файл в массиве файлов загрузки Codeigniter: разрешение загруженных изображений – 600 на веб-сервере, изображения не отображаются на веб-сайте PHP: Неустранимая ошибка: вызов функции-члена bind_param () для не-объекта

Ограничение результатов из Magento SOAP-запроса

Как указать максимальный набор результатов для запросов Magento SOAP?

Я запрашиваю Magento через SOAP API для списка заказов, соответствующих данному статусу. У нас есть несколько удаленных хостов, которые слишком долго возвращают список, поэтому я хотел бы ограничить набор результатов, однако я не вижу для этого параметра.

$orderListRaw = $proxy -> call ( $sessionId, 'sales_order.list', array ( array ( 'status' => array ( 'in' => $orderstatusarray ) ) ) ); 

Я смог убедиться, что мы вернем данные (через 6 минут) и смогли справиться с тайм-аутами и т. Д., Но предпочли бы просто навязать максимальный набор результатов.

Не похоже, что это можно сделать с помощью limit (плюс вам нужно будет сделать сложную логику разбиения на страницы, чтобы получить все записи, потому что вам нужно знать общее количество записей, а api не имеет для этого метода) См. Список вызовов api @ http://www.magentocommerce.com/api/soap/sales/salesOrder/sales_order.list.html

Но то, что вы можете сделать в качестве работы, – это использование сложных фильтров, чтобы ограничить базу набора результатов на дату создания. (приспосабливайтесь к вечной, дневной или недельной базе по объему заказа).

Кроме того, поскольку вы используете тип статуса (при условии, что вы исключаете больше, чем просто отменить заказ), вы можете подумать о получении всего заказа и отслеживать состояние order_id / status локально (обрабатывать только те, у которых указан выше статус) и оставшаяся часть, которая не была продолжена, будет списком идентификатора заказа, который может понадобиться вам позже

Пример псевдокода

 $params = array(array( 'filter' => array( array( 'key' => 'status', 'value' => array( 'key' => 'in', 'value' => $orderstatusarray, ), ), ), 'complex_filter' => array( array( 'key' => 'created_at', 'value' => array( 'key' => 'gteq', 'value' => '2012-11-25 12:00:00' ), ), array( 'key' => 'created_at', 'value' => array( 'key' => 'lteq', 'value' => '2012-11-26 11:59:59' ), ), ) )); $orderListRaw = $proxy -> call ( $sessionId, 'sales_order.list', $params); 

Подробнее о фильтрации @ http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-8-varien-data-collections