Multiple Fulfillments per Order

The API doc seems to show the ability to specify multiple fulfillments per order, but when I do I receive a 400 “Orders cannot be created with more than one fulfillment”. I’m specifying a separate “uid” for each fulfillment, which correlates to the “uid” of the line Item. Currently using API version “2021-02-26” and haven’t tried with the latest yet - just curious if this is possible at all.

I believe they created it to enable it for the future (as you say, it’s currently a fulfillments array which implies it can hold more than one), but in the current state there can only be one. Apologies for the confusion!

Thanks for the clarification, @sjosey! Is there a recommended approach to placing a single order that requires different fulfillments? The specific use-case is that a customer can order some items for ASAP pickup, but a few items require a longer lead time (~3-5 days). We want to pay this in one transaction, but ideally the future-fulfillment items wouldn’t show up on the POS until the day of pickup. I’d rather not have to split the order (which is problematic from a payment-perspective) or force the customer to place 2 orders. Any recommendations on best approach would be greatly appreciated. Thanks!

There’s really not a way to do this that would make sense, unfortunately. Since a single order can only have one fulfillment, you’d have to create two orders, which also means two payments.

If the customer was saving their card on file, you could just create two orders on the API, but it would look like a single action to them, and just charge their card twice for each order.

Otherwise, you could create the first order and make the amount entire order so you collect the entire money, but then create another order with the appropriate items that can’t be picked up right away, and use cash/external payment to mark it as “paid” so you don’t actually collect additional money. This would allow you to create two orders and two payments, but only ask for their payment card once.

Note neither of these are great solutions, just thinking out loud of possible work-arounds.