A user has a Shopify Flow that emails about unfulfilled paid orders after 3 weeks. They want to exclude orders marked “ready for pickup” but cannot find the correct condition to detect this status.
Attempted Solutions:
Testing fulfillments_item.displayStatus property (has “ready_for_pickup” option but returns empty results)
Using order.displayFulfillmentStatus variable (doesn’t include “ready for pickup” as an option)
Two different Flow configurations with “Fulfillment event created” trigger
Suggested Workarounds:
Using a scheduled trigger with “Get order data” action and GraphQL query filtering, though the original poster rejected this due to concerns about multiple email sends
Implementing a complex tagging system to track already-notified orders
Current Status:
The issue remains unresolved. The core problem is that neither order.displayFulfillmentStatus nor fulfillments_item.displayStatus reliably captures the “ready for pickup” status visible in Shopify admin. The user plans to contact Shopify Support directly for clarification on which property correctly maps to the fulfillment status displayed in the admin interface.
Summarized with AI on November 2.
AI used: claude-sonnet-4-5-20250929.
Hi all, I have a Flow setup to send an email if paid orders (containing a certain product type) remain unfulfilled after 3 weeks. It works as intended, looks like this:
Now, I would like to refine this to exclude orders that have been marked “ready for pickup” - but can’t figure out how to do this. I’ve tried two different ways to detect the “ready for pickup” status via separate test flows - neither worked (ie neither of them generated alert emails as intended). They’re shown below:
You may be able to make a recurring workflow for this using a Scheduled time trigger, followed by a Get order data action with a query that filters to unfulfilled pickup orders older than three weeks, followed by a condition that checks the fulfillments.displayStatus is equal to ‘READY_FOR_PICKUP’. I suspect that condition didn’t work in your second example because the “Fulfillment event created” trigger might fire before that fulfillments.displayStatus is populated.
I think that query on the “Get order data” may look something like this:
created_at:<='{{ scheduledAt | date_minus: "3 weeks" }}' AND fulfillment_status:unfulfilled AND delivery_method:pickup AND NOT status:cancelled
Thanks for your response. I’m not crazy about this approach though; I want to enact this automation for orders that meets this criteria ONCE only. In my mind the easiest way to do this is to use a trigger that will only occur once (ie order achieves paid status). If I’m understanding correctly, with the scheduled time approach (ie set to run every 24hrs or similar), every order that meets the criteria would get flagged each time it runs and thus get multiple emails generated - this is not what I want. Also, the proposed code you suggested doesn’t filter the orders I want. I want only the orders that are unfulfilled where the fulfillment status is not “ready for pickup”. Your code would give me orders that are unfulfilled with delivery method set to pickup - that’s not the same thing.
I have two spin-off question - which property is linked to the fulfillment status as displayed in the shopify admin? (see image below). Pretty sure it’s NOT fulfillments_item.displayStatus, though that property contains “ready_for_pickup” among other options. I say this as I just experimented with another version of this code, it was looking for fulfillments_item.displayStatus for an order that was unfulfilled in the shopify admin, yet it returned an ‘empty’ result.
Thanks. Impressive workaround really…but too complicated for my liking, and actually still doesn’t address the lack of being able to detect “ready for pickup” status. I think I’ll submit a ticket with Shopify Support directly and see what happens.
I also tried doing it via the ‘fulfillments_item.displayStatus’ property, which DOES have a “ready_for_pickup” property in it’s dropdown list - that came back as ‘empty’ when the test order I made was set to “Ready for pickup” status within the shopify admin. See below. Still looking for a solution…