Working on an Order API integration for a community module. Wanted to avoid rewriting the
Mage_Sales_Model_Order_Api model, so instead I implemented an observer of the
sales_order_collection_load_before event that limits the result set to a hard limit. Went with 250, that's the limit Shopify uses, seems like a sane number if you're going to hard code something.
If there are API integrations that depend upon the order API not having any limit, then they could run into issues. For example, if someone has an Order API integration that pulls in the full number of orders on a monthly basis (or even a daily basis, the time range is somewhat arbitrary), then it would now only pull in 250 orders.
While it's possible to filter the result set on a date range, any date range that you pick would be essentially arbitrary. A day's worth of orders might be way too small and result in an unnecessarily high number of API hits for smaller stores, and for larger stores, it might be way too large of a range. It really is necessary to be able to limit an API response on an absolute number of results, and that's what most modern API's do.
Has anyone found any good solution to this?