Can you create order via the Admin API, that Shopify recognises as a pickup order?

Hi all,

I’m needing to create orders through the Shopify Admin API, with the resulting order to be recognised by Shopify as a pickup in store / local pickup order.

Specifically, after creation, I want the order in Shopify admin to follow the normal pickup workflow and show actions like:

  • Ready for pickup
  • Mark as picked up

I can’t find a supported way to set the delivery method to pickup so that Shopify treats it the same as an order where the customer selected pickup during checkout.

My questions are:

  1. Does the Admin API support creating an order as a pickup order?
  2. If it does, what is the correct way to do it?
  3. If it doesn’t, is there any official workaround to trigger the pickup workflow on API-created orders?

Would appreciate any clarification from anyone who has dealt with this, or word from a Shopify staffer on whether this is a known limitation (and whether its being worked on).

Thanks
Gunner

1 Like

Hi @gunner,

Unfortunately the orderCreate mutation doesn’t support Local Pickup orders at this time, though I will be submitting some feedback on your behalf that you’d like to see this feature added in the future!

In the meantime I would recommend looking into creating orders via Draft Orders instead, with the draftOrderCreate mutation.

To do this, you can make a draftOrderAvailableDeliveryOptions query, before creating the draft order, and this will return the availableLocalPickupOptions field, with the pick up option handle.

Then you can create the Draft Order with draftOrderCreate and pass the availableLocalPickupOptions.handle in the input.shippingLine.shippingRateHandle argument.

Here’s some documentation for reference:

Thanks for responding @Kellan-Shopify

So are you saying that we could follow the steps above, and then use the draftOrderComplete mutation to finalise the order, as a workaround to being able to create a (non-draft) order with Shopify-native pickup delivery method?

Hi @gunner,

Yep you got it exactly! Once you close the draft order with draftOrderComplete it will create the actual order on the shop, and you can then manually mark the order as paid with the orderMarkAsPaid mutation, or via the order in the Shop Admin directly.

Alternatively, if the customer needs to pay for the order, you can create the Draft Order, then send an invoice to the customer with the draftOrderInvoiceSend mutation, and the order will be created automatically when the customer pays via the checkout link in the invoice, no need for draftOrderComplete in that scenario.

Here’s some more documentation on these mutations, and draft orders in general: