Have your say in Community Polls: What was/is your greatest motivation to start your own business?
Our Partner & Developer boards on the community are moving to a brand new home: the .dev community forums! While you can still access past discussions here, for all your future app and storefront building questions, head over to the new forums.

Re: Local pickup identifier on order object

Local pickup identifier on order object

aveshopstech
Shopify Partner
33 1 31

I know that it is possible for shop owners to configure shipping and delivery settings to give their customers the option to select local pickup. However, I can't find any documentation regarding how an order object received through the api or webhook would be marked as a "local pickup". To test, I placed an order on a development shop, with local pickup selected as the shipping method, and then inspected the orders/created payload sent to me by shopify. But I don't see any flag or shipping data that would indicate that the order was marked for local pickup by the customer. Am I missing something? How can we determine that an order is meant for local pickup?

Replies 16 (16)

aveshopstech
Shopify Partner
33 1 31

FWIW, after further inspection, it looks like a local pickup order has a couple of defining features:

1. No shipping_address object
2. The shipping_lines title and code attributes are set to the name of the location where local pickup was configured by the shop

While this is workable, its a bit problematic. For one, it seems like there are other scenarios that can result in no shipping address object being included on the order. Also, while highly unlikely, it is technically possible that the name of a location is set to the same thing as the name or code of a shipping method, thus creating a conflict as there's nothing inherently unique about the name of a location. For the programmer, there's also not a way to lookup a location to get its address based on the name, meaning we have to get all locations, then filter the return values based on the name. Not hard, but feels like a hack. Then, as if to throw salt in the wound, Shopify includes an object called origin_location that presumably references the location where the order was placed (though maybe this doesn't necessarily correspond with the local pickup location?), except that the ID attribute on origin_location is NOT an actual location ID, and there is no other location_id attribute on the object either. 

All in all, it would be much more helpful if the order actually had a "local_pickup" flag or "local_pickup_location_id" value or something to explicitly mark the order as being set for local pickup. Of course, all of this is based on my own assumptions from a couple of test orders, so if anyone has additional light to shed on the matter, please chime in!

darrine
Shopify Partner
7 0 2

I'm curious to know if you ever got a response related to the point you've made here? I can only agree - less ambiguity here would be nice.

aveshopstech
Shopify Partner
33 1 31

Unfortunately, there's been no reply from Shopify and I haven't found any additional information on managing local pickup orders. It seems like local pickup was a hacked in feature that has never fully been implemented throughout Shopify. For example, while a customer can select local pickup as an option during checkout, the Shopify admin doesn't have the option to select local pickup when creating a draft/manual order. Hopefully this feature gets some attention in the future.

NikoKolev
Shopify Partner
4 0 3

I've just texted the Shopify Support team on Twitter for the same issue. I'm waiting for an answer. The current solution (checking for empty fields) seems like a really bad idea! I hope they've worked on something more reliable.

ggabadian
Visitor
1 0 2

Hi. I'm dealing with the same situation as you are regarding Local Pickup orders. Based on a couple test orders. I've found that local pickup orders have the same shipping_line.carrier_identifier which is a pretty long and ugly string that goes like "650f1a1...". Does this also happen to your Local Pickup orders?

NikoKolev
Shopify Partner
4 0 3

I'll have to check this out

Aaron_Kroontje
Shopify Partner
20 0 11

This is awesome @ggabadian! Did some analysis and found that for local delivery those orders have a common ID for carrier_identifier - thanks for pointing me in that direction. Ridiculous how painful it is to use the API for Local Pickup.

onera
Shopify Partner
3 0 0

We can confirm the same carrier_identify for pick up in store orders. 

KControl
Shopify Partner
2 0 0

I'm in a position where I need to work towards adding local pickup support but do not have ready access any local pickup orders.
Can anyone ( @ggabadian @Aaron_Kroontje @onera  ) confirm for me whether the relevant carriage return identifier is one specific ID, or is it a different ID for each store which can nonetheless be recognized by shared characters? If it is a specific ID, could someone kindly share it here? If the latter, do the similarities end after the initial characters previously mentioned (650f1a1)?

KControl
Shopify Partner
2 0 0

carrier_identifer* obviously, not carriage return identifier. That's what I get for multitasking 😛

RSW_Russell
Shopify Partner
2 0 1

Unfortunately, I've found that a carrier_identifier field containing the '650f1a1..." value isn't a reliable way to determine Local Pickup.  We encounter a number of orders that have this field set to this value that aren't local pickup orders.

 

a9809
Shopify Partner
7 0 0

Hi, Did you find any solution to this?I am also looking to get the Pickup location from an Order using Graphql.

Thanks

azerila
Shopify Partner
3 0 4

You can get it from graphQL. Local pickup orders have fulfillment orders with PICK_UP delivery method. Shopify docs.

Luigi_Vampa
Tourist
6 0 1

Hi, can you be more specific about that ? I went around fulfillment orders but cannot find any local pickup identifier.

LouiseEH
Shopify Partner
38 3 7

Is this still the best way to go?

SteveMonsen
Shopify Partner
10 0 5

It's under deliveryMethod.methodType in the fulfillmentOrder.
https://shopify.dev/docs/api/admin-graphql/2024-07/objects/FulfillmentOrder#field-deliverymethod

 

Note: Under deliveryMethod click "Show fields", then under methodTypes click "Show enum values".

If you're not confused, you're not thinking.