Marking an order as "Ready to pickup" and "Picked up" using Shopify API

MaximRIT
Shopify Partner
14 1 1

I'm sending a POST request to https://retail-it-test.myshopify.com/admin/api/2021-01/orders/3795053084838/fulfillments.json with payload:

{"fulfillment": {"location_id": 56908873894, "shipment_status": "ready_for_pickup"}}

 

The result I'm receiving is:

{"fulfillment":{"id":3354343145638,"order_id":3795053084838,"status":"success","created_at":"2021-04-27T16:15:56+01:00","service":"manual","updated_at":"2021-04-27T16:15:56+01:00","tracking_company":null,"shipment_status":null,"location_id":56908873894,"line_items":[{"id":9870673543334,"variant_id":39251348783270,"title":"Ajax Full Zip Sweatshirt","quantity":1,"sku":"50003471S","variant_title":"Size S Color Green","vendor":"LUMA","fulfillment_service":"manual","product_id":6536321138854,"requires_shipping":true,"taxable":true,"gift_card":false,"name":"Ajax Full Zip Sweatshirt - Size S Color Green","variant_inventory_management":"shopify","properties":[],"product_exists":true,"fulfillable_quantity":0,"grams":0,"price":"69.00","total_discount":"0.00","fulfillment_status":"fulfilled","price_set":{"shop_money":{"amount":"69.00","currency_code":"GBP"},"presentment_money":{"amount":"69.00","currency_code":"GBP"}},"total_discount_set":{"shop_money":{"amount":"0.00","currency_code":"GBP"},"presentment_money":{"amount":"0.00","currency_code":"GBP"}},"discount_allocations":[],"duties":[],"admin_graphql_api_id":"gid:\/\/shopify\/LineItem\/9870673543334","tax_lines":[{"title":"GB VAT","price":"11.50","rate":0.2,"price_set":{"shop_money":{"amount":"11.50","currency_code":"GBP"},"presentment_money":{"amount":"11.50","currency_code":"GBP"}}}],"origin_location":{"id":2652546007206,"country_code":"GB","province_code":"","name":"Retail IT Demo Shop","address1":"56 Wimbledon Hill Road","address2":"","city":"London","zip":"SW19 7PA"}}],"tracking_number":null,"tracking_numbers":[],"tracking_url":null,"tracking_urls":[],"receipt":{},"name":"1108.1","admin_graphql_api_id":"gid:\/\/shopify\/Fulfillment\/3354343145638"}}

Order status is "Fulfilled" not "Ready for pickup" like when I'm doing from admin web interface. I checked Shopify community forum and found a topic related to my issue, but there is no solution: https://community.shopify.com/c/Shopify-APIs-SDKs/Mark-order-as-quot-Ready-for-Pickup-quot-via-Admin...

Replies 7 (7)

syf_
Shopify Staff
95 21 24

Hi @MaximRIT,

As of now, there isn't any way to mark an order as ready_for_pickup via our APIs, this is only possible (AFAIK) via the merchant's Admin interface.

Best,
Seth.

syf_ | Developer Support @ Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit Shopify.dev or the Shopify Web Design and Development Blog

ParcelNinja
Shopify Partner
18 0 2

From what I understand this has still not been fixed? Has anybody had further information regarding this?

LeeOGrady
Shopify Partner
7 0 12

Come on Shopify. This really isn't good enough when automation is the way businesses can scale. This has been a issue since back in 2020 or prior based on other threads.

Brett_Bullock
Shopify Staff (Retired)
3 0 4

This is a known issue and is slated to be resolved in the 2023-01 release candidate https://shopify.dev/api/admin-graphql/2023-01/mutations/fulfillmentOrderLineItemsPreparedForPickup

To mark an order as picked up, use the fulfillmentCreateV2 mutation https://shopify.dev/docs/api/admin-graphql/2024-01/mutations/fulfillmentCreateV2 .

To learn more visit the Shopify Help Center or the Community Blog.

mokozuki
Shopify Partner
3 0 3

What about marking an order as picked up? I can't find any information on getting that done through the api.

MaximRIT
Shopify Partner
14 1 1

This works to mark order as ready for pickup, but how about marking it as picked up? This is essential thing and making order ready for pickup using API without finalizing it as picked up via API is almost useless.

LeeOGrady
Shopify Partner
7 0 12

The second part of Bretts message. create a fulfilment to ‘mark as picked up’ not entirely logical maybe but it does work. be sure to set notify customer to false.

this second call is available on REST too, the first is graphql only.