FROM CACHE - en_header

Issues with the reliability of FulfillmentEvents

4 0 2

I'm currently trying to pull FulfillmentEvent information for orders and it looks like the reliability of this information is low.

I'm looking for more information on how these events are defined and what to expect the data to look like in these events.

Query I'm using to pull most of this information:


    fulfillment(id: $id) {
        trackingInfo {
        events(first: 30) {
            edges {
                node {



Example 1 

FulfillmentID: 2520198217815

A status of CONFIRMED can happen multiple times. In this situation it looks like it it moved from Fedex to usps ("Accepted by U.S. Postal Service")

Is this the expected result? What exactly does CONFIRMED mean across fulfillments

Example 2

FulfillmentID: 2655573999690

It looks like this fulfillment never got the final DELIVERED status. Is there any way to determine if this has been delivered? displayStatus and the final fulfillmentEvent both say this fulfillment is still in transit

Example 3

FulfillmentID: 2661660491850

The events in this one seem correct. The current event is IN_TRANSIT, but the time of IN_TRANSIT is incorrect. ups is showing the last update at 9/25 at 6am, but Shopify is showing 9/24 5am UTC.

I have seen multiple IN_TRANSIT events on many fulfillments, but this one doesn't look like its picking them all up?

Example 4

FulfillmentID: 2658818064458

This is the same situation as example 3. It seems like it could possibly be something related to ups?


Any more info about the intricacies of FulfillmentEvents would be helpful.

Replies 2 (2)
Shopify Partner
1026 85 272

Have you tried looking at the Shopify webhooks for fulfillments/create and fulfillments/update? See for details. It would be interesting to see what these fire off compared to what you are seeing with your GraphQL API requests.

4 0 2

I use these webhooks right now as well.

I'm ~70% confident the payload that comes in with these hooks are similar to what I receive in the direct request. It could be possible the hooks pick up the ups changes (example 3) while the direct shopify query only has the single IN_TRANSIT event, but I don't think that's true.