Description
A couple users have reported one of the more tedious parts of using the SDK and CLI is putting all the requests together when ordering a large number of items.
The orders API allows a maximum of 500 items at once (and works best if it's a 100 or less), but many use cases involving larger AOI's and/or deep time stacks involve more than that. A user has to break it up into a number of different requests and then download all of them.
We could offer the ability to break up an order on behalf of the user. In discussion with @jreiberkyle we decided (if I remember right) that the smoothest path (from a CLI perspective) would be to let a user provide an arbitrary long list of id's, but if it's over the limit then we'd have an interactive prompt informing them that their order is past the limit, and it needs to be broken up into smaller orders, and ask them if they'd like that done automatically. We'd then issue as many orders as needed to fulfill the request, returning a list of order id's. The default would likely be that we just then let the user decide if they want to wait
and download
each, but we could also explore some sort of new bulk wait and download request.
From the python API perspective we also want to offer some sort of bulk offering, with an 'opt-in' step, but @jreiberkyle was going to think of the best way to do that, perhaps another method that takes a longer list of orders and returns a list of order ids, etc.
In both cases we would have to provide 'names' for each order, but both paths would take an order name as an argument, so we could likely just append the order number.
Talking to the core API team at Planet it sounds like breaking orders up into 100 items or less gets the highest chance of success. Right now I'm thinking we could 'offer' this at any order over 100, but if it's under 500 we'd still let them place the order. But I think either way when we break it up we should do chunks of 100 items, for the highest chance of success.